From: Anton Blanchard We have IO BARs on ppc64 machines that begin at address 0. The current pci probe code will ignore anything that starts at 0. Remove these checks. --- 25-akpm/drivers/pci/probe.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff -puN drivers/pci/probe.c~ppc64-bar-0-fix drivers/pci/probe.c --- 25/drivers/pci/probe.c~ppc64-bar-0-fix Tue Jan 27 13:35:46 2004 +++ 25-akpm/drivers/pci/probe.c Tue Jan 27 13:35:46 2004 @@ -176,7 +176,7 @@ void __devinit pci_read_bridge_bases(str limit |= (io_limit_hi << 16); } - if (base && base <= limit) { + if (base <= limit) { res->flags = (io_base_lo & PCI_IO_RANGE_TYPE_MASK) | IORESOURCE_IO; res->start = base; res->end = limit + 0xfff; @@ -187,7 +187,7 @@ void __devinit pci_read_bridge_bases(str pci_read_config_word(dev, PCI_MEMORY_LIMIT, &mem_limit_lo); base = (mem_base_lo & PCI_MEMORY_RANGE_MASK) << 16; limit = (mem_limit_lo & PCI_MEMORY_RANGE_MASK) << 16; - if (base && base <= limit) { + if (base <= limit) { res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM; res->start = base; res->end = limit + 0xfffff; @@ -213,7 +213,7 @@ void __devinit pci_read_bridge_bases(str } #endif } - if (base && base <= limit) { + if (base <= limit) { res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM | IORESOURCE_PREFETCH; res->start = base; res->end = limit + 0xfffff; _