diff options
author | Tejun Heo <htejun@gmail.com> | 2006-06-12 01:18:51 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-06-12 02:10:26 -0400 |
commit | 23fa9618094975f803ed0c6a44604b16747b9637 (patch) | |
tree | 6ddba8a0202624cb34a9a5b6cb98ae503b466faf | |
parent | 3b01b8af2414b6684051da4a1507dfacdbf24f86 (diff) |
[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>
-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, | |||
419 | if (unlikely(!ap || ap->flags & ATA_FLAG_DISABLED)) | 419 | if (unlikely(!ap || ap->flags & ATA_FLAG_DISABLED)) |
420 | continue; | 420 | continue; |
421 | 421 | ||
422 | if (!(bmdma2 & (SIL_DMA_COMPLETE | SIL_DMA_SATA_IRQ))) | 422 | if (bmdma2 == 0xffffffff || |
423 | !(bmdma2 & (SIL_DMA_COMPLETE | SIL_DMA_SATA_IRQ))) | ||
423 | continue; | 424 | continue; |
424 | 425 | ||
425 | sil_host_intr(ap, bmdma2); | 426 | sil_host_intr(ap, bmdma2); |