aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2006-06-12 01:18:51 -0400
committerJeff Garzik <jeff@garzik.org>2006-06-12 02:10:26 -0400
commit23fa9618094975f803ed0c6a44604b16747b9637 (patch)
tree6ddba8a0202624cb34a9a5b6cb98ae503b466faf
parent3b01b8af2414b6684051da4a1507dfacdbf24f86 (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.c3
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);