Should link->eh_context.i.serror’s value incorporate link->eh_info.serror before doning ata_eh_analyze_serror()?

From: wanqian (D) <hidden>
Date: 2020-12-07 10:00:01
Also in: lkml

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help