drivers/pci/controller/Kconfig | 6 ++++++ drivers/pci/controller/dwc/Kconfig | 5 +++++ drivers/pci/controller/plda/Kconfig | 1 + 3 files changed, 12 insertions(+)
Add 'depends on !PCI_LOCKLESS_CONFIG' to controllers which cannot do config
access without PCI subsystem level spinlock. If PCI_LOCKLESS_CONFIG is ever
enabled, those controllers would have to be updated accordingly.
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
---
Cc: "Krzysztof Wilczyński" <kwilczynski@kernel.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Christian Bruel <christian.bruel@foss.st.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Inochi Amaoto <inochiama@gmail.com>
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Magnus Damm <magnus.damm@gmail.com>
Cc: Manivannan Sadhasivam <mani@kernel.org>
Cc: Mayank Rana <mayank.rana@oss.qualcomm.com>
Cc: Nam Cao <namcao@linutronix.de>
Cc: Rob Herring <robh@kernel.org>
Cc: Shradha Todi <shradha.t@samsung.com>
Cc: Thippeswamy Havalige <thippeswamy.havalige@amd.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Cc: linux-kernel@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: linux-renesas-soc@vger.kernel.org
---
NOTE: I hope I got them all
---
drivers/pci/controller/Kconfig | 6 ++++++
drivers/pci/controller/dwc/Kconfig | 5 +++++
drivers/pci/controller/plda/Kconfig | 1 +
3 files changed, 12 insertions(+)
diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
index 41748d083b933..1a6e937cca929 100644
--- a/drivers/pci/controller/Kconfig
+++ b/drivers/pci/controller/Kconfig
@@ -12,6 +12,7 @@ config PCI_AARDVARK
depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
depends on OF
depends on PCI_MSI
+ depends on !PCI_LOCKLESS_CONFIG
select PCI_BRIDGE_EMUL
select IRQ_MSI_LIB
help
@@ -205,6 +206,7 @@ config PCIE_MEDIATEK_GEN3
tristate "MediaTek Gen3 PCIe controller"
depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
depends on PCI_MSI
+ depends on !PCI_LOCKLESS_CONFIG
select IRQ_MSI_LIB
help
Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
@@ -244,6 +246,7 @@ config PCIE_RCAR_HOST
bool "Renesas R-Car PCIe controller (host mode)"
depends on ARCH_RENESAS || COMPILE_TEST
depends on PCI_MSI
+ depends on !PCI_LOCKLESS_CONFIG
select IRQ_MSI_LIB
help
Say Y here if you want PCIe controller support on R-Car SoCs in host
@@ -332,6 +335,7 @@ config PCIE_XILINX_DMA_PL
bool "Xilinx DMA PL PCIe host bridge support"
depends on ARCH_ZYNQMP || COMPILE_TEST
depends on PCI_MSI
+ depends on !PCI_LOCKLESS_CONFIG
select PCI_HOST_COMMON
select IRQ_MSI_LIB
help
@@ -344,6 +348,7 @@ config PCIE_XILINX_NWL
bool "Xilinx NWL PCIe controller"
depends on ARCH_ZYNQMP || COMPILE_TEST
depends on PCI_MSI
+ depends on !PCI_LOCKLESS_CONFIG
select IRQ_MSI_LIB
help
Say 'Y' here if you want kernel support for Xilinx
@@ -354,6 +359,7 @@ config PCIE_XILINX_NWL
config PCIE_XILINX_CPM
bool "Xilinx Versal CPM PCI controller"
depends on ARCH_ZYNQMP || COMPILE_TEST
+ depends on !PCI_LOCKLESS_CONFIG
select PCI_HOST_COMMON
help
Say 'Y' here if you want kernel support for the
diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig
index 34abc859c1071..8eab27775195f 100644
--- a/drivers/pci/controller/dwc/Kconfig
+++ b/drivers/pci/controller/dwc/Kconfig
@@ -2,6 +2,7 @@
menu "DesignWare-based PCIe controllers"
depends on PCI
+ depends on !PCI_LOCKLESS_CONFIG
config PCIE_DW
bool
@@ -322,6 +323,7 @@ config PCIE_RCAR_GEN4_HOST
tristate "Renesas R-Car Gen4 PCIe controller (host mode)"
depends on ARCH_RENESAS || COMPILE_TEST
depends on PCI_MSI
+ depends on !PCI_LOCKLESS_CONFIG
select PCIE_DW_HOST
select PCIE_RCAR_GEN4
help
@@ -390,6 +392,7 @@ config PCIE_UNIPHIER
depends on ARCH_UNIPHIER || COMPILE_TEST
depends on OF && HAS_IOMEM
depends on PCI_MSI
+ depends on !PCI_LOCKLESS_CONFIG
select PCIE_DW_HOST
help
Say Y here if you want PCIe host controller support on UniPhier SoCs.
@@ -410,6 +413,7 @@ config PCIE_SOPHGO_DW
depends on ARCH_SOPHGO || COMPILE_TEST
depends on PCI_MSI
depends on OF
+ depends on !PCI_LOCKLESS_CONFIG
select PCIE_DW_HOST
help
Say Y here if you want PCIe host controller support on
@@ -488,6 +492,7 @@ config PCI_KEYSTONE_HOST
bool "TI Keystone PCIe controller (host mode)"
depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
depends on PCI_MSI
+ depends on !PCI_LOCKLESS_CONFIG
select PCIE_DW_HOST
select PCI_KEYSTONE
help
diff --git a/drivers/pci/controller/plda/Kconfig b/drivers/pci/controller/plda/Kconfig
index 62120101139cb..2a400678312eb 100644
--- a/drivers/pci/controller/plda/Kconfig
+++ b/drivers/pci/controller/plda/Kconfig
@@ -10,6 +10,7 @@ config PCIE_PLDA_HOST
config PCIE_MICROCHIP_HOST
tristate "Microchip AXI PCIe controller"
depends on PCI_MSI && OF
+ depends on !PCI_LOCKLESS_CONFIG
select PCI_HOST_COMMON
select PCIE_PLDA_HOST
help
--
2.51.0
On Thu, Sep 25, 2025 at 03:49:45PM +0200, Marek Vasut wrote: > Add 'depends on !PCI_LOCKLESS_CONFIG' to controllers which cannot do config > access without PCI subsystem level spinlock. May I know on what basis you have added the Kconfig dependency? Because, all non-x86 and um drivers are going to suffer from the race if PCI_LOCKLESS_CONFIG is selected. But you've only added the dependency to selected drivers. - Mani > If PCI_LOCKLESS_CONFIG is ever > enabled, those controllers would have to be updated accordingly. > > Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org> > --- > Cc: "Krzysztof Wilczyński" <kwilczynski@kernel.org> > Cc: Bjorn Helgaas <bhelgaas@google.com> > Cc: Christian Bruel <christian.bruel@foss.st.com> > Cc: Geert Uytterhoeven <geert+renesas@glider.be> > Cc: Inochi Amaoto <inochiama@gmail.com> > Cc: Lorenzo Pieralisi <lpieralisi@kernel.org> > Cc: Magnus Damm <magnus.damm@gmail.com> > Cc: Manivannan Sadhasivam <mani@kernel.org> > Cc: Mayank Rana <mayank.rana@oss.qualcomm.com> > Cc: Nam Cao <namcao@linutronix.de> > Cc: Rob Herring <robh@kernel.org> > Cc: Shradha Todi <shradha.t@samsung.com> > Cc: Thippeswamy Havalige <thippeswamy.havalige@amd.com> > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> > Cc: linux-kernel@vger.kernel.org > Cc: linux-pci@vger.kernel.org > Cc: linux-renesas-soc@vger.kernel.org > --- > NOTE: I hope I got them all > --- > drivers/pci/controller/Kconfig | 6 ++++++ > drivers/pci/controller/dwc/Kconfig | 5 +++++ > drivers/pci/controller/plda/Kconfig | 1 + > 3 files changed, 12 insertions(+) > > diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig > index 41748d083b933..1a6e937cca929 100644 > --- a/drivers/pci/controller/Kconfig > +++ b/drivers/pci/controller/Kconfig > @@ -12,6 +12,7 @@ config PCI_AARDVARK > depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST > depends on OF > depends on PCI_MSI > + depends on !PCI_LOCKLESS_CONFIG > select PCI_BRIDGE_EMUL > select IRQ_MSI_LIB > help > @@ -205,6 +206,7 @@ config PCIE_MEDIATEK_GEN3 > tristate "MediaTek Gen3 PCIe controller" > depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST > depends on PCI_MSI > + depends on !PCI_LOCKLESS_CONFIG > select IRQ_MSI_LIB > help > Adds support for PCIe Gen3 MAC controller for MediaTek SoCs. > @@ -244,6 +246,7 @@ config PCIE_RCAR_HOST > bool "Renesas R-Car PCIe controller (host mode)" > depends on ARCH_RENESAS || COMPILE_TEST > depends on PCI_MSI > + depends on !PCI_LOCKLESS_CONFIG > select IRQ_MSI_LIB > help > Say Y here if you want PCIe controller support on R-Car SoCs in host > @@ -332,6 +335,7 @@ config PCIE_XILINX_DMA_PL > bool "Xilinx DMA PL PCIe host bridge support" > depends on ARCH_ZYNQMP || COMPILE_TEST > depends on PCI_MSI > + depends on !PCI_LOCKLESS_CONFIG > select PCI_HOST_COMMON > select IRQ_MSI_LIB > help > @@ -344,6 +348,7 @@ config PCIE_XILINX_NWL > bool "Xilinx NWL PCIe controller" > depends on ARCH_ZYNQMP || COMPILE_TEST > depends on PCI_MSI > + depends on !PCI_LOCKLESS_CONFIG > select IRQ_MSI_LIB > help > Say 'Y' here if you want kernel support for Xilinx > @@ -354,6 +359,7 @@ config PCIE_XILINX_NWL > config PCIE_XILINX_CPM > bool "Xilinx Versal CPM PCI controller" > depends on ARCH_ZYNQMP || COMPILE_TEST > + depends on !PCI_LOCKLESS_CONFIG > select PCI_HOST_COMMON > help > Say 'Y' here if you want kernel support for the > diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig > index 34abc859c1071..8eab27775195f 100644 > --- a/drivers/pci/controller/dwc/Kconfig > +++ b/drivers/pci/controller/dwc/Kconfig > @@ -2,6 +2,7 @@ > > menu "DesignWare-based PCIe controllers" > depends on PCI > + depends on !PCI_LOCKLESS_CONFIG > > config PCIE_DW > bool > @@ -322,6 +323,7 @@ config PCIE_RCAR_GEN4_HOST > tristate "Renesas R-Car Gen4 PCIe controller (host mode)" > depends on ARCH_RENESAS || COMPILE_TEST > depends on PCI_MSI > + depends on !PCI_LOCKLESS_CONFIG > select PCIE_DW_HOST > select PCIE_RCAR_GEN4 > help > @@ -390,6 +392,7 @@ config PCIE_UNIPHIER > depends on ARCH_UNIPHIER || COMPILE_TEST > depends on OF && HAS_IOMEM > depends on PCI_MSI > + depends on !PCI_LOCKLESS_CONFIG > select PCIE_DW_HOST > help > Say Y here if you want PCIe host controller support on UniPhier SoCs. > @@ -410,6 +413,7 @@ config PCIE_SOPHGO_DW > depends on ARCH_SOPHGO || COMPILE_TEST > depends on PCI_MSI > depends on OF > + depends on !PCI_LOCKLESS_CONFIG > select PCIE_DW_HOST > help > Say Y here if you want PCIe host controller support on > @@ -488,6 +492,7 @@ config PCI_KEYSTONE_HOST > bool "TI Keystone PCIe controller (host mode)" > depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST > depends on PCI_MSI > + depends on !PCI_LOCKLESS_CONFIG > select PCIE_DW_HOST > select PCI_KEYSTONE > help > diff --git a/drivers/pci/controller/plda/Kconfig b/drivers/pci/controller/plda/Kconfig > index 62120101139cb..2a400678312eb 100644 > --- a/drivers/pci/controller/plda/Kconfig > +++ b/drivers/pci/controller/plda/Kconfig > @@ -10,6 +10,7 @@ config PCIE_PLDA_HOST > config PCIE_MICROCHIP_HOST > tristate "Microchip AXI PCIe controller" > depends on PCI_MSI && OF > + depends on !PCI_LOCKLESS_CONFIG > select PCI_HOST_COMMON > select PCIE_PLDA_HOST > help > -- > 2.51.0 > -- மணிவண்ணன் சதாசிவம்
On 10/17/25 12:33 PM, Manivannan Sadhasivam wrote: > On Thu, Sep 25, 2025 at 03:49:45PM +0200, Marek Vasut wrote: >> Add 'depends on !PCI_LOCKLESS_CONFIG' to controllers which cannot do config >> access without PCI subsystem level spinlock. > > May I know on what basis you have added the Kconfig dependency? Because, all > non-x86 and um drivers are going to suffer from the race if PCI_LOCKLESS_CONFIG > is selected. But you've only added the dependency to selected drivers. Sorry for the late reply. I added those !PCI_LOCKLESS_CONFIG to all controllers which I know are used on ARM/ARM64 where the locking is needed, to assure those systems won't accidentally have PCI_LOCKLESS_CONFIG=y which would break PCIe on them, and to indicate they require the !PCI_LOCKLESS_CONFIG is this is ever going to be enabled on non-x86 .
© 2016 - 2026 Red Hat, Inc.