Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

PCI: pciehp: Use is_pciehp instead of is_hotplug_bridge

The PCIe hotplug driver calculates the depth of a nested hotplug port by
looking at the is_hotplug_bridge flag. The depth is used as lockdep class
to tell hotplug ports apart.

The is_hotplug_bridge flag encompasses ACPI slots handled by the ACPI
hotplug driver, hence the calculated depth may be too high. Avoid by
checking the is_pciehp flag instead.

This glitch likely has no user-visible impact: ACPI slots typically only
exist at the Root Port level, not in nested hotplug hierarchies. Also,
CONFIG_LOCKDEP is usually only used by developers. So this is just for
the sake of correctness.

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/59a097376a2bb493da9efd66fb196ae4b66f8a09.1752390102.git.lukas@wunner.de

authored by

Lukas Wunner and committed by
Bjorn Helgaas
c6036c33 1d60796a

+1 -1
+1 -1
drivers/pci/hotplug/pciehp_hpc.c
··· 995 995 996 996 while (bus->parent) { 997 997 bus = bus->parent; 998 - if (bus->self && bus->self->is_hotplug_bridge) 998 + if (bus->self && bus->self->is_pciehp) 999 999 depth++; 1000 1000 } 1001 1001