37 lines
1.5 KiB
Diff
37 lines
1.5 KiB
Diff
From b958aba8ee0d90742627dd46324cd29fd3e3abce Mon Sep 17 00:00:00 2001
|
|
From: Lukas Wunner <lukas@wunner.de>
|
|
Date: Sun, 13 Jul 2025 16:31:02 +0200
|
|
Subject: PCI/portdrv: Use is_pciehp instead of is_hotplug_bridge
|
|
|
|
The PCIe port driver erroneously creates a subdevice for hotplug on ACPI
|
|
slots which are handled by the ACPI hotplug driver.
|
|
|
|
Avoid by checking the is_pciehp flag instead of is_hotplug_bridge when
|
|
deciding whether to create a subdevice. The latter encompasses ACPI slots
|
|
whereas the former doesn't.
|
|
|
|
The superfluous subdevice has no real negative impact, it occupies memory
|
|
and interrupt resources but otherwise just sits there waiting for
|
|
interrupts from the slot that are never signaled.
|
|
|
|
Fixes: f8415222837b ("PCI: Use cached copy of PCI_EXP_SLTCAP_HPC bit")
|
|
Signed-off-by: Lukas Wunner <lukas@wunner.de>
|
|
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
|
|
Cc: stable@vger.kernel.org # v4.7+
|
|
Link: https://patch.msgid.link/40d5a5fe8d40595d505949c620a067fa110ee85e.1752390102.git.lukas@wunner.de
|
|
---
|
|
drivers/pci/pcie/portdrv.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
--- a/drivers/pci/pcie/portdrv.c
|
|
+++ b/drivers/pci/pcie/portdrv.c
|
|
@@ -220,7 +220,7 @@ static int get_port_device_capability(st
|
|
struct pci_host_bridge *host = pci_find_host_bridge(dev->bus);
|
|
int services = 0;
|
|
|
|
- if (dev->is_hotplug_bridge &&
|
|
+ if (dev->is_pciehp &&
|
|
(pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT ||
|
|
pci_pcie_type(dev) == PCI_EXP_TYPE_DOWNSTREAM) &&
|
|
(pcie_ports_native || host->native_pcie_hotplug)) {
|