aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wilcox <willy@linux.intel.com>2009-06-17 16:33:36 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-17 17:04:42 -0400
commit1d89b30cc9be41af87881682ec82e2c107849dbe (patch)
tree1cbd30856ca7158f7c6906330ebe58cc55aa9b2d
parenta76117dfd687ec4be0a9a05214f3009cc5f73a42 (diff)
ia64: Fix resource assignment for root busses
ia64 was assigning resources to root busses after allocations had been made for child busses. Calling pcibios_setup_root_windows() from pcibios_fixup_bus() solves this problem by assigning the resources to the root bus before child busses are scanned. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Tested-by: Andrew Patterson <andrew.patterson@hp.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/ia64/pci/pci.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c
index e643373e4701..729298f4b234 100644
--- a/arch/ia64/pci/pci.c
+++ b/arch/ia64/pci/pci.c
@@ -371,8 +371,6 @@ pci_acpi_scan_root(struct acpi_device *device, int domain, int bus)
371 * such quirk. So we just ignore the case now. 371 * such quirk. So we just ignore the case now.
372 */ 372 */
373 pbus = pci_scan_bus_parented(NULL, bus, &pci_root_ops, controller); 373 pbus = pci_scan_bus_parented(NULL, bus, &pci_root_ops, controller);
374 if (pbus)
375 pcibios_setup_root_windows(pbus, controller);
376 374
377 return pbus; 375 return pbus;
378 376
@@ -490,6 +488,8 @@ pcibios_fixup_bus (struct pci_bus *b)
490 if (b->self) { 488 if (b->self) {
491 pci_read_bridge_bases(b); 489 pci_read_bridge_bases(b);
492 pcibios_fixup_bridge_resources(b->self); 490 pcibios_fixup_bridge_resources(b->self);
491 } else {
492 pcibios_setup_root_windows(b, b->sysdata);
493 } 493 }
494 list_for_each_entry(dev, &b->devices, bus_list) 494 list_for_each_entry(dev, &b->devices, bus_list)
495 pcibios_fixup_device_resources(dev); 495 pcibios_fixup_device_resources(dev);