During chasing one PCI xHCI hotplug problem, David Bulkow found static void pcie_portdrv_remove(struct pci_dev *dev) { pcie_port_device_remove(dev); pci_disable_device(dev); } and void pcie_port_device_remove(struct pci_dev *dev) { device_for_each_child(&dev->dev, NULL, remove_iter); cleanup_service_irqs(dev); pci_disable_device(dev); } that extra pci_disable_device in pcie_port_device_remove() was added by | commit dc5351784eb36f1fec4efa88e01581be72c0b711 | Author: Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx> | Date: Wed Nov 25 21:04:00 2009 +0900 | | PCI: portdrv: cleanup service irqs initialization so pci_dsiable_device is called two times. We should remove extra one in pcie_portdrv_remove. Reported-by: David Bulkow <David.Bulkow@xxxxxxxxxxx> Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx> --- drivers/pci/pcie/portdrv_pci.c | 1 - 1 file changed, 1 deletion(-) Index: linux-2.6/drivers/pci/pcie/portdrv_pci.c =================================================================== --- linux-2.6.orig/drivers/pci/pcie/portdrv_pci.c +++ linux-2.6/drivers/pci/pcie/portdrv_pci.c @@ -223,7 +223,6 @@ static int pcie_portdrv_probe(struct pci static void pcie_portdrv_remove(struct pci_dev *dev) { pcie_port_device_remove(dev); - pci_disable_device(dev); } static int error_detected_iter(struct device *device, void *data) -- 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