diff options
author | Matthew Wilcox <willy@linux.intel.com> | 2009-06-17 16:33:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-17 17:04:42 -0400 |
commit | 1d89b30cc9be41af87881682ec82e2c107849dbe (patch) | |
tree | 1cbd30856ca7158f7c6906330ebe58cc55aa9b2d /arch/ia64 | |
parent | a76117dfd687ec4be0a9a05214f3009cc5f73a42 (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>
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/pci/pci.c | 4 |
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); |