From: Mike Christie Date: Fri, 12 Aug 2022 01:00:20 +0000 (-0500) Subject: scsi: uas: Drop DID_TARGET_FAILURE use X-Git-Tag: v6.6.17~6454^2~69 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f1d0d5c9fe37d45e5f3004e54a4e596220bae930;p=platform%2Fkernel%2Flinux-rpi.git scsi: uas: Drop DID_TARGET_FAILURE use 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 it in scsi_decide_disposition() so it results in entering SCSI error handling. It looks like the driver wanted a hard failure so this swaps it with DID_BAD_TARGET which gives us that behavior. 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). Link: https://lore.kernel.org/r/20220812010027.8251-4-michael.christie@oracle.com Signed-off-by: Mike Christie Signed-off-by: Martin K. Petersen --- diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c index 84dc270f..de38364 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);