[PATCH v3 0/8] Fix long standing AER Error Handling Issues

From: Naveen Naidu
Date: Mon Oct 04 2021 - 10:30:39 EST


This patch series aims at fixing some of the AER error handling issues
we have.

Currently we have the following issues:
- Confusing message in aer_print_error()
- aer_err_info not being initialized completely in DPC path before
we print the AER logs
- A bug [1] in clearing of AER registers in the native AER path

[1] https://lore.kernel.org/linux-pci/20151229155822.GA17321@localhost/

The primary aim of this patch series is to converge the APEI path and the
native AER error handling paths. In our current code, we find that we
have two different behaviours (especially when it comes to clearing of
the AER registers) for the same functionality.

This patch series, tries to bring the same semantics and hence more
commonanlity between the APEI part of code and the native OS
handling of AER errors.

PATCH 1:
- Fixes the first issue

PATCH 2 - 4:
- Fixes the second issue
- "Patch 3/8" is dependent on "Patch 2/3" in the series

PATCH 5 - 7
- Deals with converging the various paths and to bring more
commonality between them
- "Patch 6/8" depends on "Patch 1/8"

PATCH 8:
- Adds extra information in AER error logs.

Thanks,
Naveen Naidu

Changelog
=========

v3:
- Fix up mail formatting and resend the patches again.
Really sorry for all the spam. I messed up in the first try and
instead of fixing it well in v2, I messed up again. I have fixed
everything now. Apologies for the inconvenience caused. I'll make
sure to not repeat it again.

v2:
- Apologies for the mistake, I forgot to cc the linux-pci mailing
list.Resent the email with cc to linux-pci

Naveen Naidu (8):
[PATCH v3 1/8] PCI/AER: Remove ID from aer_agent_string[]
[PATCH v3 2/8] PCI: Cleanup struct aer_err_info
[PATCH v3 3/8] PCI/DPC: Initialize info->id in dpc_process_error()
[PATCH v3 4/8] PCI/DPC: Use pci_aer_clear_status() in dpc_process_error()
[PATCH v3 5/8] PCI/DPC: Converge EDR and DPC Path of clearing AER registers
[PATCH v3 6/8] PCI/AER: Clear error device AER registers in aer_irq()
[PATCH v3 7/8] PCI/ERR: Remove redundant clearing of AER register in pcie_do_recovery()
[PATCH v3 8/8] PCI/AER: Include DEVCTL in aer_print_error()

drivers/pci/pci.h | 23 +++-
drivers/pci/pcie/aer.c | 265 ++++++++++++++++++++++++++++-------------
drivers/pci/pcie/dpc.c | 9 +-
drivers/pci/pcie/err.c | 9 +-
4 files changed, 207 insertions(+), 99 deletions(-)

--
2.25.1