浏览代码

sparc32,leon: SRMMU MMU Table probe fix

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>
Daniel Hellstrom 13 年之前
父节点
当前提交
f22ed71cd6
共有 2 个文件被更改,包括 2 次插入2 次删除
  1. 1 1
      arch/sparc/include/asm/pgtsrmmu.h
  2. 1 1
      arch/sparc/mm/leon_mm.c

+ 1 - 1
arch/sparc/include/asm/pgtsrmmu.h

@@ -280,7 +280,7 @@ static inline unsigned long srmmu_hwprobe(unsigned long vaddr)
 	return retval;
 	return retval;
 }
 }
 #else
 #else
-#define srmmu_hwprobe(addr) (srmmu_swprobe(addr, 0) & SRMMU_PTE_PMASK)
+#define srmmu_hwprobe(addr) srmmu_swprobe(addr, 0)
 #endif
 #endif
 
 
 static inline int
 static inline int

+ 1 - 1
arch/sparc/mm/leon_mm.c

@@ -162,7 +162,7 @@ ready:
 		printk(KERN_INFO "swprobe: padde %x\n", paddr_calc);
 		printk(KERN_INFO "swprobe: padde %x\n", paddr_calc);
 	if (paddr)
 	if (paddr)
 		*paddr = paddr_calc;
 		*paddr = paddr_calc;
-	return paddrbase;
+	return pte;
 }
 }
 
 
 void leon_flush_icache_all(void)
 void leon_flush_icache_all(void)