Re: [PATCH v13 1/5] PCI/DPC: Ignore devices with no AER Capability
From: Lukas Wunner
Date: Sun Sep 20 2026 - 02:12:15 EST
On Sat, Sep 19, 2026 at 09:26:51AM -0700, Kuppuswamy Sathyanarayanan wrote:
> Downstream Ports may support DPC regardless of whether they support AER
> (see PCIe r7.0, sec 6.2.11.2). Previously, if the user booted with
> "pcie_ports=dpc-native", it was possible for dpc_probe() to succeed even if
> the device had no AER Capability, but dpc_get_aer_uncorrect_severity()
> depends on the AER Capability.
[...]
> +++ b/drivers/pci/pcie/dpc.c
> @@ -477,6 +477,9 @@ static int dpc_probe(struct pcie_device *dev)
> int status;
> u16 cap;
>
> + if (!pdev->aer_cap)
> + return -ENOTSUPP;
> +
> if (!pcie_aer_is_native(pdev) && !pcie_ports_dpc_native)
> return -ENOTSUPP;
I've got patches which make DPC work (again) on AER-unsupporting ports:
https://github.com/l1k/linux/commits/aer_baseline_v1/
In particular:
PCI/DPC: Avoid access to non-existent AER capability
https://github.com/l1k/linux/commit/85f209fd4732
PCI/DPC: Reinstate support for AER-incapable ports
https://github.com/l1k/linux/commit/2de89b762d79
I'm almost done with that series and hope to submit it this cycle.
Your patch [1/5] will cause a conflict with my patches.
Would you mind holding off on patch [1/5] for now?
There's another reason: I know of one product in particular,
Intel "Ponte Vecchio" data center GPUs, which support DPC but
lack an AER capability. DPC was tested and made to work on
those cards (see 53b54ad074de).
I didn't realize back then but know now that validation engineers
specifically used pcie_ports=dpc-native to be able to use DPC on
that product. And I believe this was also communicated to customers
as "best known method" for DPC on Ponte Vecchio. In other words,
using pcie_ports=dpc-native to make DPC work on non-AER-capable products
has become a feature. Your patch breaks those use cases.
That's why I chose to make DPC work (again) on non-AER-capable products
with the above-linked patches, instead of closing this loophole to
force-enable it.
Thanks,
Lukas