diff options
Diffstat (limited to 'drivers/ata/sata_inic162x.c')
-rw-r--r-- | drivers/ata/sata_inic162x.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c index 27dc6c86a4cd..0ac6cdd9d1e8 100644 --- a/drivers/ata/sata_inic162x.c +++ b/drivers/ata/sata_inic162x.c | |||
@@ -415,22 +415,11 @@ static irqreturn_t inic_interrupt(int irq, void *dev_instance) | |||
415 | 415 | ||
416 | spin_lock(&host->lock); | 416 | spin_lock(&host->lock); |
417 | 417 | ||
418 | for (i = 0; i < NR_PORTS; i++) { | 418 | for (i = 0; i < NR_PORTS; i++) |
419 | struct ata_port *ap = host->ports[i]; | 419 | if (host_irq_stat & (HIRQ_PORT0 << i)) { |
420 | 420 | inic_host_intr(host->ports[i]); | |
421 | if (!(host_irq_stat & (HIRQ_PORT0 << i))) | ||
422 | continue; | ||
423 | |||
424 | if (likely(ap && !(ap->flags & ATA_FLAG_DISABLED))) { | ||
425 | inic_host_intr(ap); | ||
426 | handled++; | 421 | handled++; |
427 | } else { | ||
428 | if (ata_ratelimit()) | ||
429 | dev_printk(KERN_ERR, host->dev, "interrupt " | ||
430 | "from disabled port %d (0x%x)\n", | ||
431 | i, host_irq_stat); | ||
432 | } | 422 | } |
433 | } | ||
434 | 423 | ||
435 | spin_unlock(&host->lock); | 424 | spin_unlock(&host->lock); |
436 | 425 | ||