[PATCH] PCI address getting truncated to 32-bits

Jake Moilanen moilanen at austin.ibm.com
Fri Mar 4 06:40:34 EST 2005


While looking at another problem, I ran across this.  It looks like we
are truncated our pci addresses coming out of "assigned-addresses" to
32-bits.

Signed-off-by: Jake Moilanen <moilanen at austin.ibm.com>

--

diff -puN arch/ppc64/kernel/prom.c~offb_dsi arch/ppc64/kernel/prom.c
--- linux-2.6.11/arch/ppc64/kernel/prom.c~offb_dsi      Thu Mar  3 10:23:22 2005
+++ linux-2.6.11-moilanen/arch/ppc64/kernel/prom.c      Thu Mar  3 13:25:54 2005
@@ -333,7 +333,7 @@ static unsigned long __init interpret_pc
                while ((l -= sizeof(struct pci_reg_property)) >= 0) {
                        if (!measure_only) {
                                adr[i].space = pci_addrs[i].addr.a_hi;
-                               adr[i].address = pci_addrs[i].addr.a_lo;
+                               adr[i].address = ((unsigned long)pci_addrs[i].addr.a_mid << 32) | pci_addrs[i].addr.a_lo;
                                adr[i].size = pci_addrs[i].size_lo;
                        }
                        ++i;



More information about the Linuxppc64-dev mailing list