diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2008-02-14 17:56:56 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-04-21 00:47:00 -0400 |
commit | 8a1bc9013a03d41a0e36ee413bb6f97281b30bd1 (patch) | |
tree | 83c01850e1779e37be1d9db0f87436b09b89f3fe /drivers/pci/bus.c | |
parent | 70308923d317f2ad4973c30d90bb48ae38761317 (diff) |
PCI: add is_added flag to struct pci_dev
This lets us check if the device is really added to the driver core or
not, which is what we need when walking some of the bus lists. The flag
is there in anticipation of getting rid of the other PCI device list,
which is what we used to check in this situation.
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/pci/bus.c')
-rw-r--r-- | drivers/pci/bus.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c index d708358326e5..e1c079aa0e82 100644 --- a/drivers/pci/bus.c +++ b/drivers/pci/bus.c | |||
@@ -84,6 +84,7 @@ int pci_bus_add_device(struct pci_dev *dev) | |||
84 | if (retval) | 84 | if (retval) |
85 | return retval; | 85 | return retval; |
86 | 86 | ||
87 | dev->is_added = 1; | ||
87 | down_write(&pci_bus_sem); | 88 | down_write(&pci_bus_sem); |
88 | list_add_tail(&dev->global_list, &pci_devices); | 89 | list_add_tail(&dev->global_list, &pci_devices); |
89 | up_write(&pci_bus_sem); | 90 | up_write(&pci_bus_sem); |
@@ -112,11 +113,8 @@ void pci_bus_add_devices(struct pci_bus *bus) | |||
112 | int retval; | 113 | int retval; |
113 | 114 | ||
114 | list_for_each_entry(dev, &bus->devices, bus_list) { | 115 | list_for_each_entry(dev, &bus->devices, bus_list) { |
115 | /* | 116 | /* Skip already-added devices */ |
116 | * Skip already-present devices (which are on the | 117 | if (dev->is_added) |
117 | * global device list.) | ||
118 | */ | ||
119 | if (!list_empty(&dev->global_list)) | ||
120 | continue; | 118 | continue; |
121 | retval = pci_bus_add_device(dev); | 119 | retval = pci_bus_add_device(dev); |
122 | if (retval) | 120 | if (retval) |
@@ -124,8 +122,7 @@ void pci_bus_add_devices(struct pci_bus *bus) | |||
124 | } | 122 | } |
125 | 123 | ||
126 | list_for_each_entry(dev, &bus->devices, bus_list) { | 124 | list_for_each_entry(dev, &bus->devices, bus_list) { |
127 | 125 | BUG_ON(!dev->is_added); | |
128 | BUG_ON(list_empty(&dev->global_list)); | ||
129 | 126 | ||
130 | /* | 127 | /* |
131 | * If there is an unattached subordinate bus, attach | 128 | * If there is an unattached subordinate bus, attach |