Messages in this thread | | | Date | Wed, 20 Nov 2013 09:14:33 +0800 | From | Yijing Wang <> | Subject | Re: [3.11.4] Thunderbolt/PCI unplug oops in pci_pme_list_scan |
| |
>>> [bhelgaas: changelog, tag for stable] >>> Reported-by: David Bulkow <David.Bulkow@stratus.com> >>> Reported-by: Mika Westerberg <mika.westerberg@linux.intel.com> >>> Signed-off-by: Yinghai Lu <yinghai@kernel.org> >>> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> >>> CC: stable@vger.kernel.org # 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
| |