aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_sil.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2007-12-08 08:47:01 +0900
committerJeff Garzik <jeff@garzik.org>2007-12-17 20:33:11 -0500
commitf7fe7ad4bcaba17f05d5cbf1119772c645783b08 (patch)
treeb267cfb43c39aa7a038b13acf620bd1e0cab29a8 /drivers/ata/sata_sil.c
parentsata_sil: fix spurious IRQ handling (diff)
downloadlinux-dev-f7fe7ad4bcaba17f05d5cbf1119772c645783b08.tar.xz
linux-dev-f7fe7ad4bcaba17f05d5cbf1119772c645783b08.zip
libata: clear link->eh_info.serror from ata_std_postreset()
link->eh_info.serror is used to cache SError for controllers which need it cleared from interrupt handler to clear IRQ. It also should be cleared after reset just like SError itself. Make ata_std_postreset() clear link->eh_info.serror too and update sata_sil such that it doesn't care about bookkeeping the value. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata/sata_sil.c')
-rw-r--r--drivers/ata/sata_sil.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c
index 025622b14efb..f5119bf40c24 100644
--- a/drivers/ata/sata_sil.c
+++ b/drivers/ata/sata_sil.c
@@ -394,16 +394,7 @@ static void sil_host_intr(struct ata_port *ap, u32 bmdma2)
* it's PHYRDY CHG.
*/
if (serror & SERR_PHYRDY_CHG) {
- /* Trigger hotplug and accumulate SError only
- * if the port isn't already frozen.
- * Otherwise, PHY events during hardreset
- * makes controllers with broken SIEN repeat
- * probing needlessly.
- */
- if (!(ap->pflags & ATA_PFLAG_FROZEN)) {
- ata_ehi_hotplugged(&ap->link.eh_info);
- ap->link.eh_info.serror |= serror;
- }
+ ap->link.eh_info.serror |= serror;
goto freeze;
}