<div dir="ltr"><div>FWIW<br></div><div>Reviewed-by: Linas Vepstas <<a href="mailto:linasvepstas@gmail.com">linasvepstas@gmail.com</a>></div><div> </div><div>*** Notes: I wrote the original EEH handler, and three or four ethernet and scsi EEH recovery drivers (including lpfc and qla, if I recall correctly). I've been inactive in kernel development for more than a decade; I did read this patch series (carefully); it seems excellent, from my rather distant viewpoint. My apologies if this email feels like noise to anyone on the cc list; I feel obliged to respond. -- Linas<br></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Wed, Aug 13, 2025 at 12:11 AM Lukas Wunner <<a href="mailto:lukas@wunner.de">lukas@wunner.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The kernel supports three different PCI error recovery mechanisms:<br>
<br>
* AER per PCIe r7.0 sec 6.2 (drivers/pci/pcie/aer.c + err.c)<br>
* EEH on PowerPC (arch/powerpc/kernel/eeh_driver.c)<br>
* zPCI on s390 (arch/s390/pci/pci_event.c)<br>
<br>
In theory, they should all follow Documentation/PCI/pci-error-recovery.rst<br>
to afford uniform behavior to drivers across platforms.<br>
<br>
In practice, there are deviations which this series seeks to reduce.<br>
<br>
One particular pain point is AER not allowing drivers to opt in to a<br>
Bus Reset on Non-Fatal Errors (patch [1/5]). EEH allows this and the<br>
"xe" graphics driver would like to take advantage of it on AER-capable<br>
platforms. Patches [2/5] to [4/5] address various other deviations,<br>
while patch [5/5] cleans up old gunk in code comments.<br>
<br>
I've gone through all drivers implementing pci_error_handlers to ascertain<br>
that no regressions are introduced by these changes. Nevertheless further<br>
reviewing and testing would be appreciated to raise the confidence.<br>
Thanks!<br>
<br>
Lukas Wunner (5):<br>
PCI/AER: Allow drivers to opt in to Bus Reset on Non-Fatal Errors<br>
PCI/ERR: Fix uevent on failure to recover<br>
PCI/ERR: Notify drivers on failure to recover<br>
PCI/ERR: Update device error_state already after reset<br>
PCI/ERR: Remove remnants of .link_reset() callback<br>
<br>
.../ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 1 -<br>
.../net/ethernet/qlogic/qlcnic/qlcnic_main.c | 2 -<br>
drivers/net/ethernet/sfc/efx_common.c | 3 --<br>
drivers/net/ethernet/sfc/falcon/efx.c | 3 --<br>
drivers/net/ethernet/sfc/siena/efx_common.c | 3 --<br>
drivers/pci/pcie/err.c | 40 ++++++++++++++-----<br>
drivers/scsi/lpfc/lpfc_init.c | 2 +-<br>
drivers/scsi/qla2xxx/qla_os.c | 5 ---<br>
8 files changed, 32 insertions(+), 27 deletions(-)<br>
<br>
-- <br>
2.47.2<br>
<br>
</blockquote></div><div><br clear="all"></div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Patrick: Are they laughing at us?</div><div>Sponge Bob: No, Patrick, they are laughing next to us.</div><div> <br></div><br></div></div>