[PATCH] sata_sil: update device hotplug handling, take #2
authorTejun Heo <htejun@gmail.com>
Mon, 12 Jun 2006 09:45:55 +0000 (18:45 +0900)
committerJeff Garzik <jeff@garzik.org>
Mon, 12 Jun 2006 13:37:21 +0000 (09:37 -0400)
commitd4c85325a817d3351e61c4be64b437116e8483b4
tree6a97a2e92a3068782cca7d139456e695c82935ec
parentaeb2ecd6096182cc080d37679080c0f088dcd4a4
[PATCH] sata_sil: update device hotplug handling, take #2

SIEN on some 3112 controllers doesn't mask SATA IRQ properly.  IRQ
stays asserted even after SIEN is masked and IRQ is acked.  Also, even
while frozen, any SATA PHY event including hardreset raises SATA IRQ.
Clearing SError seems to be the only way to deassert SATA IRQ.

This patch makes sil_host_intr() clear SError on SATA IRQs and ignore
SATA IRQs reported while frozen so that hardreset doesn't trigger
hotplug event (which ends up hardresetting again).

In such cases, the port still gets re-frozen to minimize the danger of
screaming interrupts.  This results in one nil EH repeat on
controllers with broken SIEN but other than that does no harm.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/scsi/sata_sil.c