Message ID | 1460443678-57934-9-git-send-email-hare@suse.de |
---|---|
State | Not Applicable |
Delegated to: | David Miller |
Headers | show |
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index 8b61d63..6d78b4b 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c @@ -1126,6 +1126,12 @@ static void ata_gen_ata_sense(struct ata_queued_cmd *qc) cmd->result = (DRIVER_SENSE << 24) | SAM_STAT_CHECK_CONDITION; + if (ata_dev_disabled(dev)) { + /* Device disabled after error recovery */ + /* LOGICAL UNIT NOT READY, HARD RESET REQUIRED */ + ata_scsi_set_sense(dev, cmd, NOT_READY, 0x04, 0x21); + return; + } /* Use ata_to_sense_error() to map status register bits * onto sense key, asc & ascq. */
If a device is disabled after error recovery it doesn't make any sense to generate an ATA sense, but we should rather return a generic sense code indicating the device is gone. Signed-off-by: Hannes Reinecke <hare@suse.com> --- drivers/ata/libata-scsi.c | 6 ++++++ 1 file changed, 6 insertions(+)