Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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 <michael.christie@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Mike Christie and committed by
Martin K. Petersen
f1d0d5c9 a6cb5462

+1 -1
+1 -1
drivers/usb/storage/uas.c
··· 283 283 set_host_byte(cmnd, DID_OK); 284 284 break; 285 285 case RC_TMF_NOT_SUPPORTED: 286 - set_host_byte(cmnd, DID_TARGET_FAILURE); 286 + set_host_byte(cmnd, DID_BAD_TARGET); 287 287 break; 288 288 default: 289 289 uas_log_cmd_state(cmnd, "response iu", response_code);