diff options
Diffstat (limited to 'drivers/scsi/sata_mv.c')
-rw-r--r-- | drivers/scsi/sata_mv.c | 7 |
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 | } |