diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-05-14 01:01:18 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-05-14 01:01:18 -0400 |
commit | 49d23cfcec5d36a91e118d28148d353bf8f0bc03 (patch) | |
tree | 676effacdd207a8be537c594fb449a52fe3608ec | |
parent | 7a05b591a3de20466a775f62369a42ea0fe1345d (diff) |
[SPARC64]: Be more resiliant with PCI I/O space regs.
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>
-rw-r--r-- | arch/sparc64/kernel/of_device.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c index 7455f5d05519..16cc46a71872 100644 --- a/arch/sparc64/kernel/of_device.c +++ b/arch/sparc64/kernel/of_device.c | |||
@@ -537,6 +537,13 @@ static int __init build_one_resource(struct device_node *parent, | |||
537 | return 0; | 537 | return 0; |
538 | } | 538 | } |
539 | 539 | ||
540 | /* When we miss an I/O space match on PCI, just pass it up | ||
541 | * to the next PCI bridge and/or controller. | ||
542 | */ | ||
543 | if (!strcmp(bus->name, "pci") && | ||
544 | (addr[0] & 0x03000000) == 0x01000000) | ||
545 | return 0; | ||
546 | |||
540 | return 1; | 547 | return 1; |
541 | } | 548 | } |
542 | 549 | ||