aboutsummaryrefslogtreecommitdiff
path: root/drivers/scsi/sata_sil24.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2005-08-17 13:08:47 +0900
committerJeff Garzik <jgarzik@pobox.com>2005-08-17 00:51:50 -0400
commit3cc4571c4106735665e048850ff6656de9558d60 (patch)
treece7dc0f5d02af9b247a0a2867010e555dc26834c /drivers/scsi/sata_sil24.c
parent1483467faa0170cf401955b3d8d3486ea0fe802d (diff)
[PATCH] sil24: remove irq disable code on spurious interrupt
02_sil24_remove-irq-disable-on-spurious-intr.patch If interrupt occurs on a disabled port, the driver used to mask the port's interrupt, but we don't know if such action is necessary yet and that's not what other drives do. So, just do nothing and tell IRQ subsystem that it's not our interrupt. Signed-off-by: Tejun Heo <htejun@gmail.com> sata_sil24.c | 15 +++++---------- 1 files changed, 5 insertions(+), 10 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/scsi/sata_sil24.c')
-rw-r--r--drivers/scsi/sata_sil24.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/scsi/sata_sil24.c b/drivers/scsi/sata_sil24.c
index 4868ad79b92..0f810cdd3cc 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 *
for (i = 0; i < host_set->n_ports; i++)
if (status & (1 << i)) {
struct ata_port *ap = host_set->ports[i];
- if (ap && !(ap->flags & ATA_FLAG_PORT_DISABLED))
+ if (ap && !(ap->flags & ATA_FLAG_PORT_DISABLED)) {
sil24_host_intr(host_set->ports[i]);
- else {
- u32 tmp;
- printk(KERN_WARNING DRV_NAME
- ": spurious interrupt from port %d\n", i);
- tmp = readl(hpriv->host_base + HOST_CTRL);
- tmp &= ~(1 << i);
- writel(tmp, hpriv->host_base + HOST_CTRL);
- }
- handled++;
+ handled++;
+ } else
+ printk(KERN_ERR DRV_NAME
+ ": interrupt from disabled port %d\n", i);
}
spin_unlock(&host_set->lock);