diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index 82f566cf75c63c2dc19c83efabe582b295cab813..657537f96c3afc7bd6504a415751ee674d485984 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c @@ -4336,7 +4336,8 @@ inline unsigned int ata_host_intr (struct ata_port *ap, ap->id, status, host_stat); ap->hsm_task_state = HSM_ST_IDLE; - ata_qc_complete(qc, status | ATA_ERR); + qc->err_mask |= __ac_err_mask(status); + ata_qc_complete(qc); break; default: goto idle_irq; diff --git a/drivers/scsi/sata_mv.c b/drivers/scsi/sata_mv.c index ef148acb5eeb34ccfb4964559cc866d54ea8f900..17044168ebfed3854b7ce0d243c4c0758c737111 100644 --- a/drivers/scsi/sata_mv.c +++ b/drivers/scsi/sata_mv.c @@ -1244,7 +1244,7 @@ static void mv_host_intr(struct ata_host_set *host_set, u32 relevant, /* mark qc status appropriately */ if (!(qc->tf.flags & ATA_TFLAG_POLLING)) { qc->err_mask |= err_mask; - ata_qc_complete(qc, err_mask); + ata_qc_complete(qc); } } }