[PATCH v3 0/2] PCI: Add boot options to disable DPC and AER recovery

From: Yury Murashka

Date: Thu Oct 22 2026 - 12:59:46 EST


On large modular systems with a complex PCIe topology, allow userspace to
inspect uncorrectable AER errors before Linux attempts recovery and to
opt out of Linux DPC and EDR support.

This series adds two PCI kernel boot options:

pci=noaer_recovery - Retain AER logging and correctable handling, but
skip uncorrectable AER recovery, including CXL RCH
callbacks and recovery of GHES-reported errors.
pci=nodpc - Disable Linux DPC and EDR participation, including
ACPI negotiation and EDR's DPC-enabling _DSM call.

Firmware-owned DPC settings and firmware error recovery remain under
firmware control. The two options can be selected independently.

Changes in v3:
- Patch 1: Check the recovery option before dispatching CXL RCH and
ordinary PCIe errors, addressing the CXL callback bypass.
- Patch 1: Preserve current GHES cleanup and device-reference release.
- Patch 2: Add pci_dpc_available() and use it for DPC services, ACPI
DPC/EDR negotiation, and EDR notifier installation/removal.
- Patch 2: Skip the entire EDR registration path before its enabling
_DSM, and prevent native-port overrides from defeating nodpc.
- Clarify the Linux-only scope and rebase onto the PCI next branch.

v2: https://lore.kernel.org/linux-pci/20260709185429.627968-1-yurypm@xxxxxxxxxx/
AER review: https://lore.kernel.org/linux-pci/20260709190616.DF0CF1F000E9@xxxxxxxxxxxxxxx/
DPC review: https://lore.kernel.org/linux-pci/20260709190730.E19A11F000E9@xxxxxxxxxxxxxxx/

Yury Murashka (2):
PCI: Add pci=noaer_recovery kernel boot option
PCI: Add pci=nodpc kernel boot option

.../admin-guide/kernel-parameters.txt | 9 +++++++
drivers/acpi/pci_root.c | 9 +++++--
drivers/pci/pci.c | 4 ++++
drivers/pci/pci.h | 4 ++++
drivers/pci/pcie/aer.c | 13 ++++++++--
drivers/pci/pcie/dpc.c | 24 ++++++++++++++++---
drivers/pci/pcie/edr.c | 5 +++-
drivers/pci/pcie/portdrv.c | 3 ++-
include/linux/pci.h | 6 +++++
9 files changed, 68 insertions(+), 9 deletions(-)


base-commit: f4319f548f7d8cb595ac1c91bfd459876399eeb3
--
2.51.0