Remove unnecessary pci_walk_bus() call in pciehp_resume_noirq(). This fixes a system hang that occurs when resuming after a Thunderbolt dock with attached thunderbolt storage is unplugged during system suspend. The PCI core already handles setting the disconnected state for devices under a port during suspend/resume. The redundant bus walk was interfering with proper hardware state detection during resume, causing a system hang when hot-unplugging daisy-chained Thunderbolt devices. Fixes: 9d573d19547b ("PCI: pciehp: Detect device replacement during system sleep") Signed-off-by: Chia-Lin Kao (AceLan) <acelan.kao@xxxxxxxxxxxxx> --- drivers/pci/hotplug/pciehp_core.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c index ff458e692fed..c1c3f7e2bc43 100644 --- a/drivers/pci/hotplug/pciehp_core.c +++ b/drivers/pci/hotplug/pciehp_core.c @@ -330,8 +330,6 @@ static int pciehp_resume_noirq(struct pcie_device *dev) */ if (pciehp_device_replaced(ctrl)) { ctrl_dbg(ctrl, "device replaced during system sleep\n"); - pci_walk_bus(ctrl->pcie->port->subordinate, - pci_dev_set_disconnected, NULL); pciehp_request(ctrl, PCI_EXP_SLTSTA_PDC); } } -- 2.43.0