>>> [bhelgaas: changelog, tag for stable] >>> Reported-by: David Bulkow <David.Bulkow@xxxxxxxxxxx> >>> Reported-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> >>> Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx> >>> Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> >>> CC: stable@xxxxxxxxxxxxxxx # v2.6.32+ >> >> Hi Bjorn, >> This issue in X86 seems to be introduced after commit 928bea9 "PCI: Delay enabling bridges until they're needed" >> So this patch needs to back port to 2.6.32+ ? > > 928bea9 might have made it more visible, but the underlying problem is that > we enable the device once in the probe path, and disable it twice in the > remove path. That problem exists in 2.6.32.61: > > pcie_portdrv_probe # .probe() method > pcie_port_device_register > pci_enable_device <-- enable > > pcie_portdrv_remove # .remove() method > pcie_port_device_remove > pci_disable_device <-- disable #1 > pci_disable_device <-- disable #2 During assign unassigned resources, we also enable the port device, fs_initcall(pcibios_assign_resources); pci_assign_unassigned_resources; pci_enable_bridges() pci_enable_device() So I think before the commit 928bea9 , the pci bridge device enable and disable is symmetrical. After the commit 928bea9, we only enable bridge once, but still remove twice. Thanks! Yijing. -- Thanks! Yijing -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html