On 7/7/2022, Dmitry Bogdanov wrote: > Hi Thinh, > > On Wed, Jul 06, 2022 at 04:35:20PM -0700, Thinh Nguyen wrote: >> 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, > There is no need to align that values to some standart. This enum is not > standard. That is even stated in the comment for it: > /* fabric independent task management function values */ > So, just add new values continuing from 8. Sure. I'll do that. Thanks, Thinh >> 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, >> }; >>