aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ata/libata-scsi.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 79550908adcc..553488015e49 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -2920,14 +2920,9 @@ void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd,
2920 args.done = done; 2920 args.done = done;
2921 2921
2922 switch(scsicmd[0]) { 2922 switch(scsicmd[0]) {
2923 /* no-op's, complete with success */ 2923 /* TODO: worth improving? */
2924 case SYNCHRONIZE_CACHE: 2924 case FORMAT_UNIT:
2925 case REZERO_UNIT: 2925 ata_scsi_invalid_field(cmd, done);
2926 case SEEK_6:
2927 case SEEK_10:
2928 case TEST_UNIT_READY:
2929 case FORMAT_UNIT: /* FIXME: correct? */
2930 ata_scsi_rbuf_fill(&args, ata_scsiop_noop);
2931 break; 2926 break;
2932 2927
2933 case INQUIRY: 2928 case INQUIRY:
@@ -2985,6 +2980,20 @@ void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd,
2985 done(cmd); 2980 done(cmd);
2986 break; 2981 break;
2987 2982
2983 /* if we reach this, then writeback caching is disabled,
2984 * turning this into a no-op.
2985 */
2986 case SYNCHRONIZE_CACHE:
2987 /* fall through */
2988
2989 /* no-op's, complete with success */
2990 case REZERO_UNIT:
2991 case SEEK_6:
2992 case SEEK_10:
2993 case TEST_UNIT_READY:
2994 ata_scsi_rbuf_fill(&args, ata_scsiop_noop);
2995 break;
2996
2988 case SEND_DIAGNOSTIC: 2997 case SEND_DIAGNOSTIC:
2989 tmp8 = scsicmd[1] & ~(1 << 3); 2998 tmp8 = scsicmd[1] & ~(1 << 3);
2990 if ((tmp8 == 0x4) && (!scsicmd[3]) && (!scsicmd[4])) 2999 if ((tmp8 == 0x4) && (!scsicmd[3]) && (!scsicmd[4]))