Re: [PATCH v13 1/5] PCI/DPC: Ignore devices with no AER Capability
From: Kuppuswamy Sathyanarayanan
Date: Mon Sep 21 2026 - 14:27:01 EST
Hi Lukas,
On 9/19/2026 11:11 PM, Lukas Wunner wrote:
> 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?
Sure. At first glance, your series fixes the AER/DPC dependency cleanly.
I think we can drop this patch. Bjorn, let me know if you think otherwise.
>
> 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
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer