On Wed, Jan 14, 2026 at 11:15 AM Fabio M. De Francesco <[email protected]> wrote: > > When Firmware First is enabled, BIOS handles errors first and then it > makes them available to the kernel via the Common Platform Error Record > (CPER) sections (UEFI 2.10 Appendix N). Linux parses the CPER sections > via one of two similar paths, either ELOG or GHES. > > Currently, ELOG and GHES show some inconsistencies in how they print to > the kernel log as well as in how they report to userspace via trace > events. > > Make the two mentioned paths act similarly for what relates to logging > and tracing. > > --- Changes for v9 --- > > - #include linux/printk.h for pr_*_ratelimited() in ghes_helpers.c > Reported-by: kernel test robot <[email protected]> > Closes: > https://lore.kernel.org/oe-kbuild-all/[email protected]/ > > --- Changes for v8 --- > > - Don't make GHES dependend on PCI and drop patch 3/6 - > incidentally it works out the issues that the KTR found with v7 > (Jonathan, Hanjun) > - Don't have EXTLOG dependend on CXL_BUS and move the new helpers > to a new file, then link it to ghes.c only if ACPI_APEI_PCIEAER is > selected. Placing the new helpers to their own translation unit > seems > be a more flexible and safer solution than messing with Kconfig or > with conditional compilation macros within ghes.c. PCI may not be an > option in embedded platforms > > --- Changes for v7 --- > > - Reference UEFI v2.11 (Sathyanarayanan) > - Substitute !(A || B) with !(A && B) in an 'if' statement to > convey the intended logic (Jonathan) > - Make ACPI_APEI_GHES explicitly select PCIAER because the needed > ACPI_APEI_PCIEAER doesn't recursively select that prerequisite > (Jonathan) > Reported-by: kernel test robot <[email protected]> > Closes: > https://lore.kernel.org/oe-kbuild-all/[email protected]/ > Closes: > https://lore.kernel.org/oe-kbuild-all/[email protected]/ > - Don't add the unnecessary cxl_cper_ras_handle_prot_err() wrapper > for cxl_cper_handle_prot_err() (Jonathan) > - Make ACPI_EXTLOG explicitly select PCIAER && ACPI_APEI because > the needed ACPI_APEI_PCIEAER doesn't recursively select the > prerequisites > - Make ACPI_EXTLOG select CXL_BUS > > --- Changes for v6 --- > > - Rename the helper that copies the CPER CXL protocol error > information to work struct (Dave) > - Return -EOPNOTSUPP (instead of -EINVAL) from the two helpers if > ACPI_APEI_PCIEAER is not defined (Dave) > > --- Changes for v5 --- > > - Add 3/6 to select ACPI_APEI_PCIEAER for GHES > - Add 4,5/6 to move common code between ELOG and GHES out to new > helpers use them in 6/6 (Jonathan). > > --- Changes for v4 --- > > - Re-base on top of recent changes of the AER error logging and > drop obsoleted 2/4 (Sathyanarayanan) > - Log with pr_warn_ratelimited() (Dave) > - Collect tags > --- Changes for v3 --- > > 1/4, 2/4: > - collect tags; no functional changes > 3/4: > - Invert logic of checks (Yazen) > - Select CONFIG_ACPI_APEI_PCIEAER (Yazen) > 4/4: > - Check serial number only for CXL devices (Yazen) > - Replace "invalid" with "unknown" in the output of a pr_err() > (Yazen) > > --- Changes for v2 --- > > - Add a patch to pass log levels to pci_print_aer() (Dan) > - Add a patch to trace CPER CXL Protocol Errors > - Rework commit messages (Dan) > - Use log_non_standard_event() (Bjorn) > > --- Changes for v1 --- > > - Drop the RFC prefix and restart from PATCH v1 > - Drop patch 3/3 because a discussion on it has not yet been > settled > - Drop namespacing in export of pci_print_aer while() (Dan) > - Don't use '#ifdef' in *.c files (Dan) > - Drop a reference on pdev after operation is complete (Dan) > - Don't log an error message if pdev is NULL (Dan) > > Fabio M. De Francesco (5): > ACPI: extlog: Trace CPER Non-standard Section Body > ACPI: extlog: Trace CPER PCI Express Error Section > acpi/ghes: Add helper for CPER CXL protocol errors checks > acpi/ghes: Add helper to copy CPER CXL protocol error info to work > struct > ACPI: extlog: Trace CPER CXL Protocol Error Section > > drivers/acpi/Kconfig | 2 + > drivers/acpi/acpi_extlog.c | 64 +++++++++++++++++++++++++++++++ > drivers/acpi/apei/Makefile | 1 + > drivers/acpi/apei/ghes.c | 40 +------------------ > drivers/acpi/apei/ghes_helpers.c | 66 ++++++++++++++++++++++++++++++++ > drivers/cxl/core/ras.c | 3 +- > drivers/pci/pcie/aer.c | 2 +- > include/cxl/event.h | 22 +++++++++++ > 8 files changed, 160 insertions(+), 40 deletions(-) > create mode 100644 drivers/acpi/apei/ghes_helpers.c > > > base-commit: b71e635feefc8 > --
Applied as 6.20 material, thanks!
