sparc32,leon: SRMMU MMU Table probe fix
authorDaniel Hellstrom <daniel@gaisler.com>
Thu, 8 Sep 2011 03:11:15 +0000 (03:11 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 7 Oct 2011 19:08:01 +0000 (12:08 -0700)
The LEON MMU Model (SRMMU) does not implement MMu Table probing
in hardware, instead it is implemented in software. However the
software implementation does not return the PTE as it should which
always results in INVALID entires and the PROM mappings are not
inherited as they should during startup. The following patch
removes the masking of the PTE.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/include/asm/pgtsrmmu.h
arch/sparc/mm/leon_mm.c

index 1407c07bdade6215eab5edc2cf3bbbe08544e379..f6ae2b2b6870d603ff0f33e72bd706c010244077 100644 (file)
@@ -280,7 +280,7 @@ static inline unsigned long srmmu_hwprobe(unsigned long vaddr)
        return retval;
 }
 #else
-#define srmmu_hwprobe(addr) (srmmu_swprobe(addr, 0) & SRMMU_PTE_PMASK)
+#define srmmu_hwprobe(addr) srmmu_swprobe(addr, 0)
 #endif
 
 static inline int
index e485a680499824319b5e9bd6fb750806d99a9429..13c2169822a84e8313b49c7c4136f06cff60ed83 100644 (file)
@@ -162,7 +162,7 @@ ready:
                printk(KERN_INFO "swprobe: padde %x\n", paddr_calc);
        if (paddr)
                *paddr = paddr_calc;
-       return paddrbase;
+       return pte;
 }
 
 void leon_flush_icache_all(void)