Add some standard TMR and match their code id based on UAS-r04 and SPL4-r13. Note that the non-standard TMR_LUN_RESET_PRO is using the same id value of QUERY TASK. Change it to 0xf0 instead. Signed-off-by: Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx> --- drivers/target/target_core_transport.c | 10 ++++++++++ include/target/target_core_base.h | 8 ++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index 105d3b0e470f..cbd876e44cf0 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c @@ -3090,6 +3090,10 @@ static const char *target_tmf_name(enum tcm_tmreq_table tmf) case TMR_TARGET_WARM_RESET: return "TARGET_WARM_RESET"; case TMR_TARGET_COLD_RESET: return "TARGET_COLD_RESET"; case TMR_LUN_RESET_PRO: return "LUN_RESET_PRO"; + case TMR_I_T_NEXUS_RESET: return "I_T_NEXUS_RESET"; + case TMR_QUERY_TASK: return "QUERY_TASK"; + case TMR_QUERY_TASK_SET: return "QUERY_TASK_SET"; + case TMR_QUERY_ASYNC_EVENT: return "QUERY_ASYNC_EVENT"; case TMR_UNKNOWN: break; } return "(?)"; @@ -3538,6 +3542,12 @@ static void target_tmr_work(struct work_struct *work) case TMR_TARGET_COLD_RESET: tmr->response = TMR_FUNCTION_REJECTED; break; + case TMR_I_T_NEXUS_RESET: + case TMR_QUERY_TASK: + case TMR_QUERY_TASK_SET: + case TMR_QUERY_ASYNC_EVENT: + tmr->response = TMR_FUNCTION_REJECTED; + break; default: pr_err("Unknown TMR function: 0x%02x.\n", tmr->function); diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h index 8e3da143a1ce..ccd98604eaf4 100644 --- a/include/target/target_core_base.h +++ b/include/target/target_core_base.h @@ -206,12 +206,16 @@ enum target_sc_flags_table { enum tcm_tmreq_table { TMR_ABORT_TASK = 1, TMR_ABORT_TASK_SET = 2, - TMR_CLEAR_ACA = 3, + TMR_CLEAR_ACA = 0x40, TMR_CLEAR_TASK_SET = 4, TMR_LUN_RESET = 5, TMR_TARGET_WARM_RESET = 6, TMR_TARGET_COLD_RESET = 7, - TMR_LUN_RESET_PRO = 0x80, + TMR_I_T_NEXUS_RESET = 0x10, + TMR_QUERY_TASK = 0x80, + TMR_QUERY_TASK_SET = 0x81, + TMR_QUERY_ASYNC_EVENT = 0x82, + TMR_LUN_RESET_PRO = 0xf0, TMR_UNKNOWN = 0xff, }; -- 2.28.0