diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index 3882c72..c9838f1 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c @@ -2800,7 +2800,9 @@ static inline ata_xlat_func_t ata_get_xlat_func(struct ata_device *dev, u8 cmd) return ata_scsi_start_stop_xlat; case TEST_UNIT_READY: - return ata_scsi_tur_xlat; + if (ata_id_has_pm(dev->id)) + return ata_scsi_tur_xlat; + return NULL; } return NULL; @@ -3021,6 +3023,7 @@ void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd, case REZERO_UNIT: case SEEK_6: case SEEK_10: + case TEST_UNIT_READY: /* only for !PM devices */ ata_scsi_rbuf_fill(&args, ata_scsiop_noop); break;