mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 14:42:24 +00:00
libata: schedule probing after SError access failure during autopsy
If SError isn't accessible, EH can't tell whether hotplug has happened or not. Report SError read failure with AC_ERR_OTHER and schedule probing with hardreset. This will be mainly useful for PMPs. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
fccb6ea5c2
commit
4e57c517b3
@ -1478,8 +1478,12 @@ static void ata_eh_autopsy(struct ata_port *ap)
|
||||
if (rc == 0) {
|
||||
ehc->i.serror |= serror;
|
||||
ata_eh_analyze_serror(ap);
|
||||
} else if (rc != -EOPNOTSUPP)
|
||||
} else if (rc != -EOPNOTSUPP) {
|
||||
/* SError read failed, force hardreset and probing */
|
||||
ata_ehi_schedule_probe(&ehc->i);
|
||||
ehc->i.action |= ATA_EH_HARDRESET;
|
||||
ehc->i.err_mask |= AC_ERR_OTHER;
|
||||
}
|
||||
|
||||
/* analyze NCQ failure */
|
||||
ata_eh_analyze_ncq_error(ap);
|
||||
|
Loading…
Reference in New Issue
Block a user