Re: [PATCH v15 0/4] Simplify PCIe native ownership

From: Bjorn Helgaas

Date: Tue Oct 06 2026 - 13:51:35 EST


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.