Hi, On 8/4/22 20:59, Mike Christie wrote: > Adding Hans and Gerd. Sorry, I messed up the cc originally. > > On 8/3/22 10:40 PM, Mike Christie wrote: >> DID_TARGET_FAILURE is internal to the SCSI layer. Drivers must not use it >> because: >> >> 1. It's not propagated upwards, so SG IO/passthrough users will not see an >> error and think a command was successful. >> >> 2. There is no handling for them in scsi_decide_disposition so it results >> in the scsi eh running. >> >> It looks like the driver wanted a hard failure so this swaps it with >> DID_BAD_TARGET which gives us that behavior and the error looks like it's >> for a case where the target did not support a TMF we wanted to use (maybe >> not a bad target but disappointing so close enough). >> >> Signed-off-by: Mike Christie <michael.christie@xxxxxxxxxx> The suggested change sounds reasonable to me. Note I never touched the part of the driver being changed here and I'm not a SCSI expert, so this is just my 2 cents on the change really. Regards, Hans >> --- >> drivers/usb/storage/uas.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c >> index 84dc270f6f73..de3836412bf3 100644 >> --- a/drivers/usb/storage/uas.c >> +++ b/drivers/usb/storage/uas.c >> @@ -283,7 +283,7 @@ static bool uas_evaluate_response_iu(struct response_iu *riu, struct scsi_cmnd * >> set_host_byte(cmnd, DID_OK); >> break; >> case RC_TMF_NOT_SUPPORTED: >> - set_host_byte(cmnd, DID_TARGET_FAILURE); >> + set_host_byte(cmnd, DID_BAD_TARGET); >> break; >> default: >> uas_log_cmd_state(cmnd, "response iu", response_code); >