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