diff options
-rw-r--r-- | drivers/scsi/sata_sil24.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/scsi/sata_sil24.c b/drivers/scsi/sata_sil24.c index 4868ad79b92e..0f810cdd3cc2 100644 --- a/drivers/scsi/sata_sil24.c +++ b/drivers/scsi/sata_sil24.c | |||
@@ -535,17 +535,12 @@ static irqreturn_t sil24_interrupt(int irq, void *dev_instance, struct pt_regs * | |||
535 | for (i = 0; i < host_set->n_ports; i++) | 535 | for (i = 0; i < host_set->n_ports; i++) |
536 | if (status & (1 << i)) { | 536 | if (status & (1 << i)) { |
537 | struct ata_port *ap = host_set->ports[i]; | 537 | struct ata_port *ap = host_set->ports[i]; |
538 | if (ap && !(ap->flags & ATA_FLAG_PORT_DISABLED)) | 538 | if (ap && !(ap->flags & ATA_FLAG_PORT_DISABLED)) { |
539 | sil24_host_intr(host_set->ports[i]); | 539 | sil24_host_intr(host_set->ports[i]); |
540 | else { | 540 | handled++; |
541 | u32 tmp; | 541 | } else |
542 | printk(KERN_WARNING DRV_NAME | 542 | printk(KERN_ERR DRV_NAME |
543 | ": spurious interrupt from port %d\n", i); | 543 | ": interrupt from disabled port %d\n", i); |
544 | tmp = readl(hpriv->host_base + HOST_CTRL); | ||
545 | tmp &= ~(1 << i); | ||
546 | writel(tmp, hpriv->host_base + HOST_CTRL); | ||
547 | } | ||
548 | handled++; | ||
549 | } | 544 | } |
550 | 545 | ||
551 | spin_unlock(&host_set->lock); | 546 | spin_unlock(&host_set->lock); |