diff options
author | davem <davem> | 2002-01-14 05:47:02 +0000 |
---|---|---|
committer | davem <davem> | 2002-01-14 05:47:02 +0000 |
commit | b81564ebc32812209399d2befb9a27d154ba9712 (patch) | |
tree | 3c1c1a898050a4cb8012ffdbd5506ea563bfe970 | |
parent | 35cb491a12de1e21ad635ead15437c4cf399b53c (diff) | |
download | netdev-vger-cvs-b81564ebc32812209399d2befb9a27d154ba9712.tar.gz |
Fetch assigned-address property, even for EBUS.
-rw-r--r-- | arch/sparc64/kernel/pci_common.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/arch/sparc64/kernel/pci_common.c b/arch/sparc64/kernel/pci_common.c index 978f7926c..f738c6179 100644 --- a/arch/sparc64/kernel/pci_common.c +++ b/arch/sparc64/kernel/pci_common.c @@ -1,4 +1,4 @@ -/* $Id: pci_common.c,v 1.27 2001-08-12 13:18:22 davem Exp $ +/* $Id: pci_common.c,v 1.28 2002-01-14 05:47:02 davem Exp $ * pci_common.c: PCI controller common support. * * Copyright (C) 1999 David S. Miller (davem@redhat.com) @@ -183,6 +183,17 @@ static void __init pdev_cookie_fillin(struct pci_pbm_info *pbm, pcp->prom_name[err] = 0; else pcp->prom_name[0] = 0; + + err = prom_getproperty(device_prom_node, + "assigned-addresses", + (char *)pcp->prom_assignments, + sizeof(pcp->prom_assignments)); + if (err == 0 || err == -1) + pcp->num_prom_assignments = 0; + else + pcp->num_prom_assignments = + (err / sizeof(pcp->prom_assignments[0])); + if (strcmp(pcp->prom_name, "ebus") == 0) { struct linux_prom_ebus_ranges erng[PROM_PCIRNG_MAX]; int iter; @@ -208,16 +219,6 @@ static void __init pdev_cookie_fillin(struct pci_pbm_info *pbm, ap->size_lo = ep->size; } pcp->num_prom_assignments = err; - } else { - err = prom_getproperty(device_prom_node, - "assigned-addresses", - (char *)pcp->prom_assignments, - sizeof(pcp->prom_assignments)); - if (err == 0 || err == -1) - pcp->num_prom_assignments = 0; - else - pcp->num_prom_assignments = - (err / sizeof(pcp->prom_assignments[0])); } fixup_obp_assignments(pdev, pcp); |