Commit d238ffd5 authored by Hannes Reinecke's avatar Hannes Reinecke Committed by Tejun Heo

libata: do not attempt to retrieve sense code twice

Do not call ata_request_sense() if the sense code is already
present.
Signed-off-by: default avatarHannes Reinecke <hare@suse.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent 698f6700
...@@ -1660,7 +1660,7 @@ static void ata_eh_request_sense(struct ata_queued_cmd *qc, ...@@ -1660,7 +1660,7 @@ static void ata_eh_request_sense(struct ata_queued_cmd *qc,
return; return;
} }
if (!cmd) if (!cmd || qc->flags & ATA_QCFLAG_SENSE_VALID)
return; return;
if (!ata_id_sense_reporting_enabled(dev->id)) { if (!ata_id_sense_reporting_enabled(dev->id)) {
...@@ -1849,7 +1849,7 @@ void ata_eh_analyze_ncq_error(struct ata_link *link) ...@@ -1849,7 +1849,7 @@ void ata_eh_analyze_ncq_error(struct ata_link *link)
memcpy(&qc->result_tf, &tf, sizeof(tf)); memcpy(&qc->result_tf, &tf, sizeof(tf));
qc->result_tf.flags = ATA_TFLAG_ISADDR | ATA_TFLAG_LBA | ATA_TFLAG_LBA48; qc->result_tf.flags = ATA_TFLAG_ISADDR | ATA_TFLAG_LBA | ATA_TFLAG_LBA48;
qc->err_mask |= AC_ERR_DEV | AC_ERR_NCQ; qc->err_mask |= AC_ERR_DEV | AC_ERR_NCQ;
if (qc->result_tf.auxiliary) { if ((qc->result_tf.command & ATA_SENSE) || qc->result_tf.auxiliary) {
char sense_key, asc, ascq; char sense_key, asc, ascq;
sense_key = (qc->result_tf.auxiliary >> 16) & 0xff; sense_key = (qc->result_tf.auxiliary >> 16) & 0xff;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment