Re: [PATCH v15 0/4] Simplify PCIe native ownership
From: Kuppuswamy Sathyanarayanan
Date: Tue Oct 06 2026 - 14:44:26 EST
Hi Bjorn,
On 10/6/2026 10:51 AM, Bjorn Helgaas wrote:
> On Fri, Oct 02, 2026 at 02:18:24PM -0700, Kuppuswamy Sathyanarayanan wrote:
>> This revives Bjorn's v12 from November 2020, rebased onto v7.3-rc3.
>>
>> https://lore.kernel.org/all/20201126011816.711106-1-helgaas@xxxxxxxxxx/
>>
>> The goal is unchanged. Decide who owns each PCIe port service in one
>> place, when we interpret the _OSC results in acpi_pci_root_create(), so
>> that everywhere else only has to look at host_bridge->native_X. For AER
>> specifically, host_bridge->native_aer becomes the single answer to the
>> question "may Linux touch the AER Capability?". Today callers each have
>> to remember to also test pcie_ports_native and pci_aer_available().
>>
>> I posted v11. Bjorn took it over at v12, split the _OSC changes in two
>> and deferred the "pcie_ports=dpc-native" work. The v12 review comments
>> were agreed but never respun, and the series stalled. v13 was that
>> respin.
>>
>> https://lore.kernel.org/r/cover.1603766889.git.sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx [v11]
>>
>> Bjorn suggested reviving it in response to Guixin Liu's report that
>> "pcie_ports=native" no longer enables DPC. The DPC service binds on
>> host_bridge->native_aer, and that flag did not reflect the command line,
>> so DPC stayed off when firmware retained AER control. Patch 3 fixes it
>> by making the flag reflect it.
>>
>> https://lore.kernel.org/linux-pci/20260901064554.2178688-1-kanie@xxxxxxxxxxxxxxxxx/
>>
>> Patch 3 has a side effect worth calling out. drivers/cxl/core/ras.c did
>> not exist in 2020 and tests host_bridge->native_aer with no
>> pcie_ports_native fallback, so it has been quietly ignoring
>> "pcie_ports=native". Centralizing the check fixes that.
>>
>> Binding the DPC service on host_bridge->native_dpc, rather than on
>> native_aer, is left for a separate patch on top of Lukas's series that
>> removes the DPC/AER dependency, as agreed with Bjorn. That change
>> alters behavior, so it does not belong in this cleanup.
>>
>> https://lore.kernel.org/r/cover.1790531238.git.lukas@xxxxxxxxx
>> https://lore.kernel.org/r/20261001221408.GA2731929@bhelgaas
>>
>> Changes since v14:
>> * Patch 3: fold "pcie_ports=dpc-native" into the _OSC control mask as
>> well, so host_bridge->native_dpc and the "OS native features" line
>> reflect it (Bjorn).
>> * Picked up Guixin's Reviewed-by on patch 3.
>>
>> v14 posting
>> https://lore.kernel.org/r/20260922204548.3884906-1-sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx
>>
>> Changes since v13:
>> * Lukas suggested dropping AER cap check fix (patch 1 of v13). He has
>> a series underway to fix it cleanly (removing DPC/AER dependency).
>> So dropped the patch as suggested.
>> https://lore.kernel.org/r/aq95LGUHL-pnmTlr@xxxxxxxxx
>> * Addressed use of IS_ENABLED(CONFIG_PCIEPORTBUS) instead of #ifdef
>> (Lukas).
>> * Added Fixes tag in patch 3 (Guixin Liu).
>> * Added Acks from Rafael.
>>
>> v13 posting
>> https://lore.kernel.org/r/20260919162655.3499010-1-sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx
>>
>> Bjorn Helgaas (1):
>> PCI: Centralize pci_aer_available() checking
>>
>> Kuppuswamy Sathyanarayanan (3):
>> PCI: Assume control of portdrv-related features only when portdrv
>> enabled
>> PCI/ACPI: Tidy _OSC control bit checking
>> PCI/ACPI: Centralize pcie_ports_native checking
>>
>> drivers/acpi/pci_root.c | 78 +++++++++++++++++++++++++------
>> drivers/pci/hotplug/pciehp_core.c | 2 +-
>> drivers/pci/pci-acpi.c | 3 --
>> drivers/pci/pcie/aer.c | 6 +--
>> drivers/pci/pcie/aer_cxl_rch.c | 2 +-
>> drivers/pci/pcie/err.c | 2 +-
>> drivers/pci/pcie/portdrv.c | 7 ++-
>> drivers/pci/pcie/portdrv.h | 2 -
>> drivers/pci/probe.c | 10 ++--
>> include/linux/pci.h | 2 +
>> 10 files changed, 80 insertions(+), 34 deletions(-)
>
> I put the first three patches on pci/portdrv for v7.4, thanks!
>
> I deferred the last ("PCI: Centralize pci_aer_available() checking")
> while we sort out the MSI/AER question, but I want to make sure we get
> the rest in v7.4.
Thanks for picking it up.
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer