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); |
