X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fpci%2Fbus.c;h=529d9d7727b01d1ea857388cb0514f2703c8f5b3;hb=919fae1686881ed3922ea9de5b0c0a4feff3069e;hp=d708358326e556ae03e00b213e89dd1baf0dceff;hpb=ebe8912be214662c8289977fb416c1f015df4a0b;p=linux-2.6-omap-h63xx.git diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c index d708358326e..529d9d7727b 100644 --- a/drivers/pci/bus.c +++ b/drivers/pci/bus.c @@ -84,10 +84,7 @@ int pci_bus_add_device(struct pci_dev *dev) if (retval) return retval; - down_write(&pci_bus_sem); - list_add_tail(&dev->global_list, &pci_devices); - up_write(&pci_bus_sem); - + dev->is_added = 1; pci_proc_attach_device(dev); pci_create_sysfs_dev_files(dev); return 0; @@ -112,11 +109,8 @@ void pci_bus_add_devices(struct pci_bus *bus) int retval; list_for_each_entry(dev, &bus->devices, bus_list) { - /* - * Skip already-present devices (which are on the - * global device list.) - */ - if (!list_empty(&dev->global_list)) + /* Skip already-added devices */ + if (dev->is_added) continue; retval = pci_bus_add_device(dev); if (retval) @@ -124,8 +118,7 @@ void pci_bus_add_devices(struct pci_bus *bus) } list_for_each_entry(dev, &bus->devices, bus_list) { - - BUG_ON(list_empty(&dev->global_list)); + BUG_ON(!dev->is_added); /* * If there is an unattached subordinate bus, attach