diff options
Diffstat (limited to 'drivers/usb/storage/scsiglue.c')
-rw-r--r-- | drivers/usb/storage/scsiglue.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/usb/storage/scsiglue.c b/drivers/usb/storage/scsiglue.c index c267f2812a04..e227bb5b794f 100644 --- a/drivers/usb/storage/scsiglue.c +++ b/drivers/usb/storage/scsiglue.c | |||
@@ -376,6 +376,15 @@ static int queuecommand_lck(struct scsi_cmnd *srb, | |||
376 | return 0; | 376 | return 0; |
377 | } | 377 | } |
378 | 378 | ||
379 | if ((us->fflags & US_FL_NO_ATA_1X) && | ||
380 | (srb->cmnd[0] == ATA_12 || srb->cmnd[0] == ATA_16)) { | ||
381 | memcpy(srb->sense_buffer, usb_stor_sense_invalidCDB, | ||
382 | sizeof(usb_stor_sense_invalidCDB)); | ||
383 | srb->result = SAM_STAT_CHECK_CONDITION; | ||
384 | done(srb); | ||
385 | return 0; | ||
386 | } | ||
387 | |||
379 | /* enqueue the command and wake up the control thread */ | 388 | /* enqueue the command and wake up the control thread */ |
380 | srb->scsi_done = done; | 389 | srb->scsi_done = done; |
381 | us->srb = srb; | 390 | us->srb = srb; |