diff options
author | Tejun Heo <htejun@gmail.com> | 2006-06-12 07:18:51 +0200 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-06-12 08:10:26 +0200 |
commit | 23fa9618094975f803ed0c6a44604b16747b9637 (patch) | |
tree | 6ddba8a0202624cb34a9a5b6cb98ae503b466faf /drivers/scsi | |
parent | libata: fix build, by adding required workqueue member to port struct (diff) | |
download | linux-23fa9618094975f803ed0c6a44604b16747b9637.tar.xz linux-23fa9618094975f803ed0c6a44604b16747b9637.zip |
[PATCH] sata_sil: add controller unplug detection in sil_interrupt()
Short-circuit interrupt handling if BMDMA2 is reported as 0xffffffff
indicating device removal.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/sata_sil.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/sata_sil.c b/drivers/scsi/sata_sil.c index 0898cbe6458c..a7e99a1def2f 100644 --- a/drivers/scsi/sata_sil.c +++ b/drivers/scsi/sata_sil.c @@ -419,7 +419,8 @@ static irqreturn_t sil_interrupt(int irq, void *dev_instance, if (unlikely(!ap || ap->flags & ATA_FLAG_DISABLED)) continue; - if (!(bmdma2 & (SIL_DMA_COMPLETE | SIL_DMA_SATA_IRQ))) + if (bmdma2 == 0xffffffff || + !(bmdma2 & (SIL_DMA_COMPLETE | SIL_DMA_SATA_IRQ))) continue; sil_host_intr(ap, bmdma2); |