diff options
author | Tejun Heo <htejun@gmail.com> | 2005-08-17 00:08:52 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-08-17 00:51:50 -0400 |
commit | 06460aeaa26ed4a86b92c8451365d3f48abd3786 (patch) | |
tree | 050791de806b74054f760b9debbddb7cac9caf75 /drivers/scsi | |
parent | 3cc4571c4106735665e048850ff6656de9558d60 (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')
-rw-r--r-- | drivers/scsi/sata_sil24.c | 6 |
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 | ||