Hi Tejun,
In SATA EH processing, I found the SERROR register was cleared during
interrupt handling in ahci_error_intr(), and its value has been saved to the
link->eh_info.serror.
But the SERROR register value was read again in the ata_eh_link_autopsy(), and
its value was saved to link->eh_context.i.serror which is analyzed by
ata_eh_analyze_serror().
Obviously, the link->eh_context.i.serror’s value will be zero if no host
perceptible error is found after it was cleared in interrupt handler.
Why ata_link structure should maintain two ata_eh_info instances:
link->eh_info and link->eh_context.i?
Should link->eh_context.i.serror’s value incorporate link->eh_info.serror
before doing ata_eh_analyze_serror()?
Thanks,
Qian Wan