[SPARC64]: Be more resiliant with PCI I/O space regs.
authorDavid S. Miller <davem@sunset.davemloft.net>
Mon, 14 May 2007 05:01:18 +0000 (22:01 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Mon, 14 May 2007 05:01:18 +0000 (22:01 -0700)
If we miss on the ranges, just toss the translation up to the parent
instead of failing.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/kernel/of_device.c

index 7455f5d05519bf836f3c182364405dd4c2b003d5..16cc46a718724cc5cd93a99beb3b5c43fb08fb23 100644 (file)
@@ -537,6 +537,13 @@ static int __init build_one_resource(struct device_node *parent,
                        return 0;
        }
 
+       /* When we miss an I/O space match on PCI, just pass it up
+        * to the next PCI bridge and/or controller.
+        */
+       if (!strcmp(bus->name, "pci") &&
+           (addr[0] & 0x03000000) == 0x01000000)
+               return 0;
+
        return 1;
 }