diff options
Diffstat (limited to 'arch/powerpc/kernel/pci-common.c')
-rw-r--r-- | arch/powerpc/kernel/pci-common.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index d394d41b61d5..980fe32895c0 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c | |||
@@ -792,9 +792,10 @@ static void __devinit __pcibios_fixup_bus(struct pci_bus *bus) | |||
792 | for (i = 0; i < PCI_BUS_NUM_RESOURCES; ++i) { | 792 | for (i = 0; i < PCI_BUS_NUM_RESOURCES; ++i) { |
793 | if ((res = bus->resource[i]) == NULL) | 793 | if ((res = bus->resource[i]) == NULL) |
794 | continue; | 794 | continue; |
795 | if (!res->flags || bus->self->transparent) | 795 | if (!res->flags) |
796 | continue; | ||
797 | if (i >= 3 && bus->self->transparent) | ||
796 | continue; | 798 | continue; |
797 | |||
798 | /* On PowerMac, Apple leaves bridge windows open over | 799 | /* On PowerMac, Apple leaves bridge windows open over |
799 | * an inaccessible region of memory space (0...fffff) | 800 | * an inaccessible region of memory space (0...fffff) |
800 | * which is somewhat bogus, but that's what they think | 801 | * which is somewhat bogus, but that's what they think |
@@ -806,7 +807,8 @@ static void __devinit __pcibios_fixup_bus(struct pci_bus *bus) | |||
806 | * equal to the pci_mem_offset of the host bridge and | 807 | * equal to the pci_mem_offset of the host bridge and |
807 | * their size is smaller than 1M. | 808 | * their size is smaller than 1M. |
808 | */ | 809 | */ |
809 | if (res->start == hose->pci_mem_offset && | 810 | if (res->flags & IORESOURCE_MEM && |
811 | res->start == hose->pci_mem_offset && | ||
810 | res->end < 0x100000) { | 812 | res->end < 0x100000) { |
811 | printk(KERN_INFO | 813 | printk(KERN_INFO |
812 | "PCI: Closing bogus Apple Firmware" | 814 | "PCI: Closing bogus Apple Firmware" |