aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/sata_sil24.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2005-08-17 00:08:52 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-08-17 00:51:50 -0400
commit06460aeaa26ed4a86b92c8451365d3f48abd3786 (patch)
tree050791de806b74054f760b9debbddb7cac9caf75 /drivers/scsi/sata_sil24.c
parent3cc4571c4106735665e048850ff6656de9558d60 (diff)
[PATCH] sil24: add testing for PCI fault
03_sil24_add-pci-fault-check.patch On entry to interrupt handler, PORT_SLOT_STAT register is read first. Check if PCI fault or device removal has occurred by testing the value for 0xffffffff. Signed-off-by: Tejun Heo <htejun@gmail.com> sata_sil24.c | 6 ++++++ 1 files changed, 6 insertions(+) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/scsi/sata_sil24.c')
-rw-r--r--drivers/scsi/sata_sil24.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/scsi/sata_sil24.c b/drivers/scsi/sata_sil24.c
index 0f810cdd3cc2..c9318bda46a3 100644
--- a/drivers/scsi/sata_sil24.c
+++ b/drivers/scsi/sata_sil24.c
@@ -527,6 +527,12 @@ static irqreturn_t sil24_interrupt(int irq, void *dev_instance, struct pt_regs *
527 527
528 status = readl(hpriv->host_base + HOST_IRQ_STAT); 528 status = readl(hpriv->host_base + HOST_IRQ_STAT);
529 529
530 if (status == 0xffffffff) {
531 printk(KERN_ERR DRV_NAME ": IRQ status == 0xffffffff, "
532 "PCI fault or device removal?\n");
533 goto out;
534 }
535
530 if (!(status & IRQ_STAT_4PORTS)) 536 if (!(status & IRQ_STAT_4PORTS))
531 goto out; 537 goto out;
532 538