aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/sata_mv.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/scsi/sata_mv.c b/drivers/scsi/sata_mv.c
index ee0634da0872..ac184e60797e 100644
--- a/drivers/scsi/sata_mv.c
+++ b/drivers/scsi/sata_mv.c
@@ -1219,6 +1219,10 @@ static void mv_host_intr(struct ata_host_set *host_set, u32 relevant,
1219 handled++; 1219 handled++;
1220 } 1220 }
1221 1221
1222 if (ap &&
1223 (ap->flags & (ATA_FLAG_PORT_DISABLED | ATA_FLAG_NOINTR)))
1224 continue;
1225
1222 err_mask = ac_err_mask(ata_status); 1226 err_mask = ac_err_mask(ata_status);
1223 1227
1224 shift = port << 1; /* (port * 2) */ 1228 shift = port << 1; /* (port * 2) */
@@ -1237,7 +1241,8 @@ static void mv_host_intr(struct ata_host_set *host_set, u32 relevant,
1237 VPRINTK("port %u IRQ found for qc, " 1241 VPRINTK("port %u IRQ found for qc, "
1238 "ata_status 0x%x\n", port,ata_status); 1242 "ata_status 0x%x\n", port,ata_status);
1239 /* mark qc status appropriately */ 1243 /* mark qc status appropriately */
1240 ata_qc_complete(qc, err_mask); 1244 if (!(qc->tf.ctl & ATA_NIEN))
1245 ata_qc_complete(qc, err_mask);
1241 } 1246 }
1242 } 1247 }
1243 } 1248 }