Patch from Russell King <rmk@arm.linux.org.uk>

- Convert setup-bus.c resource allocation to scan bus->devices rather
  than bus->children.  As noted previously, newly discovered child
  buses will not be on the parents list of children buses, so when
  we're trying to assign resources, we need to scan the bus for
  devices with subordinate buses rather than using the list of children
  buses.



 25-akpm/drivers/pci/setup-bus.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff -puN drivers/pci/setup-bus.c~pci-4 drivers/pci/setup-bus.c
--- 25/drivers/pci/setup-bus.c~pci-4	Tue Mar  4 16:52:04 2003
+++ 25-akpm/drivers/pci/setup-bus.c	Tue Mar  4 16:52:04 2003
@@ -350,6 +350,7 @@ pci_bus_assign_resources(struct pci_bus 
 {
 	struct pci_bus *b;
 	int found_vga = pbus_assign_resources_sorted(bus);
+	struct pci_dev *dev;
 
 	if (found_vga) {
 		/* Propagate presence of the VGA to upstream bridges */
@@ -357,9 +358,12 @@ pci_bus_assign_resources(struct pci_bus 
 			b->resource[0]->flags |= IORESOURCE_BUS_HAS_VGA;
 		}
 	}
-	list_for_each_entry(b, &bus->children, node) {
-		pci_bus_assign_resources(b);
-		pci_setup_bridge(b);
+	list_for_each_entry(dev, &bus->devices, bus_list) {
+		b = dev->subordinate;
+		if (b) {
+			pci_bus_assign_resources(b);
+			pci_setup_bridge(b);
+		}
 	}
 }
 EXPORT_SYMBOL(pci_bus_assign_resources);

_