From 78dd3042258c73c096ff214be6865cb3a373de78 Mon Sep 17 00:00:00 2001 From: Alan Stern Date: Thu, 4 Dec 2003 19:06:34 -0800 Subject: [PATCH] [PATCH] USB storage: Command failure codes for sddr09 driver This patch updates the sdd09 subdriver to make it return Command Failure with appropriate sense data (rather than Tranport Error) when: a MODE-SENSE command requests an unsupported page; a CDB includes an unrecognized command code. This should help prevent confusion and excessive retrying by the SCSI drivers. --- drivers/usb/storage/sddr09.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/usb/storage/sddr09.c b/drivers/usb/storage/sddr09.c index 6385cb4f08194..421af9668002b 100644 --- a/drivers/usb/storage/sddr09.c +++ b/drivers/usb/storage/sddr09.c @@ -1496,7 +1496,9 @@ int sddr09_transport(Scsi_Cmnd *srb, struct us_data *us) return USB_STOR_TRANSPORT_GOOD; } - return USB_STOR_TRANSPORT_ERROR; + sensekey = 0x05; /* illegal request */ + sensecode = 0x24; /* invalid field in CDB */ + return USB_STOR_TRANSPORT_FAILED; } if (srb->cmnd[0] == ALLOW_MEDIUM_REMOVAL) { @@ -1542,8 +1544,10 @@ int sddr09_transport(Scsi_Cmnd *srb, struct us_data *us) if (srb->cmnd[0] != TEST_UNIT_READY && srb->cmnd[0] != REQUEST_SENSE) { + sensekey = 0x05; /* illegal request */ + sensecode = 0x20; /* invalid command */ havefakesense = 1; - return USB_STOR_TRANSPORT_ERROR; + return USB_STOR_TRANSPORT_FAILED; } for (; srb->cmd_len<12; srb->cmd_len++) -- 2.53.0