[POWERPC] Fix pci_setup_phb_io_dynamic for pci_iomap
authorArnd Bergmann <arnd.bergmann@de.ibm.com>
Mon, 4 Jun 2007 18:14:39 +0000 (04:14 +1000)
committerPaul Mackerras <paulus@samba.org>
Thu, 7 Jun 2007 01:44:40 +0000 (11:44 +1000)
We had a problem on a system with only dynamically allocated
PCI buses (using of_pci_phb_driver) in combination with libata.
This setup ended up having no "primary" phb, which means
that pci_io_base never got initialized and all IO port
numbers are 64 bit numbers, which is larger than the
PIO_MASK limit.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/of_platform.c

index d501c23e5159559ca493caf512e888ca6671e73a..d454f61c9c7c7b5a84c00ef3f66b730e436171ee 100644 (file)
@@ -433,7 +433,7 @@ static int __devinit of_pci_phb_probe(struct of_device *dev,
         * Note also that we don't do ISA, this will also be fixed with a
         * more massive rework.
         */
-       pci_setup_phb_io(phb, 0);
+       pci_setup_phb_io(phb, pci_io_base == 0);
 
        /* Init pci_dn data structures */
        pci_devs_phb_init_dynamic(phb);