diff options
-rw-r--r-- | drivers/ata/sata_mv.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c index c60255810e68..207c400c64df 100644 --- a/drivers/ata/sata_mv.c +++ b/drivers/ata/sata_mv.c | |||
@@ -1590,13 +1590,12 @@ static void mv_intr_edma(struct ata_port *ap) | |||
1590 | 1590 | ||
1591 | qc = ata_qc_from_tag(ap, tag); | 1591 | qc = ata_qc_from_tag(ap, tag); |
1592 | 1592 | ||
1593 | /* lower 8 bits of status are EDMA_ERR_IRQ_CAUSE_OFS | 1593 | /* For non-NCQ mode, the lower 8 bits of status |
1594 | * bits (WARNING: might not necessarily be associated | 1594 | * are from EDMA_ERR_IRQ_CAUSE_OFS, |
1595 | * with this command), which -should- be clear | 1595 | * which should be zero if all went well. |
1596 | * if all is well | ||
1597 | */ | 1596 | */ |
1598 | status = le16_to_cpu(pp->crpb[out_index].flags); | 1597 | status = le16_to_cpu(pp->crpb[out_index].flags); |
1599 | if (unlikely(status & 0xff)) { | 1598 | if ((status & 0xff) && !(pp->pp_flags & MV_PP_FLAG_NCQ_EN)) { |
1600 | mv_err_intr(ap, qc); | 1599 | mv_err_intr(ap, qc); |
1601 | return; | 1600 | return; |
1602 | } | 1601 | } |