aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/ata/libata-core.c1
-rw-r--r--drivers/ata/sata_sil.c11
2 files changed, 2 insertions, 10 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index e4dea8623a7..b0d1dc3cdb2 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -3923,6 +3923,7 @@ void ata_std_postreset(struct ata_link *link, unsigned int *classes)
/* clear SError */
if (sata_scr_read(link, SCR_ERROR, &serror) == 0)
sata_scr_write(link, SCR_ERROR, serror);
+ link->eh_info.serror = 0;
/* is double-select really necessary? */
if (classes[0] != ATA_DEV_NONE)
diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c
index 025622b14ef..f5119bf40c2 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;
}