|
@@ -555,7 +555,8 @@ void ata_gen_ata_desc_sense(struct ata_queued_cmd *qc)
|
|
|
* Use ata_to_sense_error() to map status register bits
|
|
|
* onto sense key, asc & ascq.
|
|
|
*/
|
|
|
- if (tf->command & (ATA_BUSY | ATA_DF | ATA_ERR | ATA_DRQ)) {
|
|
|
+ if (qc->err_mask ||
|
|
|
+ tf->command & (ATA_BUSY | ATA_DF | ATA_ERR | ATA_DRQ)) {
|
|
|
ata_to_sense_error(qc->ap->id, tf->command, tf->feature,
|
|
|
&sb[1], &sb[2], &sb[3]);
|
|
|
sb[1] &= 0x0f;
|
|
@@ -630,7 +631,8 @@ void ata_gen_fixed_sense(struct ata_queued_cmd *qc)
|
|
|
* Use ata_to_sense_error() to map status register bits
|
|
|
* onto sense key, asc & ascq.
|
|
|
*/
|
|
|
- if (tf->command & (ATA_BUSY | ATA_DF | ATA_ERR | ATA_DRQ)) {
|
|
|
+ if (qc->err_mask ||
|
|
|
+ tf->command & (ATA_BUSY | ATA_DF | ATA_ERR | ATA_DRQ)) {
|
|
|
ata_to_sense_error(qc->ap->id, tf->command, tf->feature,
|
|
|
&sb[2], &sb[12], &sb[13]);
|
|
|
sb[2] &= 0x0f;
|