[PATCH v9 0/8] PCI: Consolidate TLP Log reading and printing

From: Ilpo Järvinen
Date: Tue Jan 14 2025 - 12:08:59 EST


This series has the remaining patches of the AER & DPC TLP Log handling
consolidation and now includes a few minor improvements to the earlier
accepted TLP Logging code.

v9:
- Added patch to define header logging register sizes.

v8:
- Added missing parameter to kerneldoc.
- Dropped last patch due to conflict with the pci_printk() cleanup
series (will move the patch into that series).

v7:
- Explain in commit message reasoning why eetlp_prefix_max stores Max
End-End TLP Prefixes value instead of limiting it by the bridge/RP
imposed limits
- Take account TLP Prefix Log Present flag.
- Align PCI_ERR_CAP_* flags in pci_regs.h
- Add EE_PREFIX_STR define to be able to take its sizeof() for output
char[] sizing.

v6:
- Preserve "AER:"/"DPC:" prefix on the printed TLP line
- New patch to add "AER:" also on other lines of the AER error dump

v5:
- Fix build with AER=y and DPC=n
- Match kerneldoc and function parameter name

v4:
- Added patches:
- Remove EXPORT of pcie_read_tlp_log()
- Moved code to pcie/tlp.c and build only with AER enabled
- Match variables in prototype and function
- int -> unsigned int conversion
- eetlp_prefix_max into own patch
- struct pcie_tlp_log param consistently called "log" within tlp.c
- Moved function prototypes into drivers/pci/pci.h
- Describe AER/DPC differences more clearly in one commit message

v3:
- Small rewording in a commit message

v2:
- Don't add EXPORT()s
- Don't include igxbe changes
- Don't use pr_cont() as it's incompatible with pci_err() and according
to Andy Shevchenko should not be used in the first place


Ilpo Järvinen (8):
PCI: Don't expose pcie_read_tlp_log() outside of PCI subsystem
PCI: Move TLP Log handling to own file
PCI: Add defines for TLP Header/Prefix log sizes
PCI: Make pcie_read_tlp_log() signature same
PCI: Use unsigned int i in pcie_read_tlp_log()
PCI: Store # of supported End-End TLP Prefixes
PCI: Add TLP Prefix reading into pcie_read_tlp_log()
PCI: Create helper to print TLP Header and Prefix Log

drivers/pci/ats.c | 2 +-
drivers/pci/pci.c | 28 ---------
drivers/pci/pci.h | 9 +++
drivers/pci/pcie/Makefile | 2 +-
drivers/pci/pcie/aer.c | 15 ++---
drivers/pci/pcie/dpc.c | 22 +++----
drivers/pci/pcie/tlp.c | 115 ++++++++++++++++++++++++++++++++++
drivers/pci/probe.c | 14 +++--
drivers/pci/quirks.c | 6 +-
include/linux/aer.h | 12 +++-
include/linux/pci.h | 2 +-
include/uapi/linux/pci_regs.h | 11 ++--
12 files changed, 172 insertions(+), 66 deletions(-)
create mode 100644 drivers/pci/pcie/tlp.c


base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37
--
2.39.5