summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2014-06-07 09:28:33 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2014-06-07 09:28:33 +0200
commit3cc15d2301ae47d6727cf1059ce855f3487bdc56 (patch)
tree098bdf15755f1b61f80256c4367c19f1318cb978
parent20b2f7a38ef20b6ce866c515bc911f8c988b6d79 (diff)
parent7bc8f4d993fce693f664a9bc8361e7b5633ed7df (diff)
downloadplan9front-3cc15d2301ae47d6727cf1059ce855f3487bdc56.tar.xz
merge
-rw-r--r--sys/src/9/pc64/mmu.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/src/9/pc64/mmu.c b/sys/src/9/pc64/mmu.c
index 8081eb7d6..eeed702ed 100644
--- a/sys/src/9/pc64/mmu.c
+++ b/sys/src/9/pc64/mmu.c
@@ -438,10 +438,19 @@ putmmu(uintptr va, uintptr pa, Page *)
invlpg(va);
}
+/*
+ * Double-check the user MMU.
+ * Error checking only.
+ */
void
checkmmu(uintptr va, uintptr pa)
{
- USED(va, pa);
+ uintptr *pte;
+
+ pte = mmuwalk(m->pml4, va, 0, 0);
+ if(pte != 0 && (*pte & PTEVALID) != 0 && PPN(*pte) != pa)
+ print("%ld %s: va=%#p pa=%#p pte=%#p\n",
+ up->pid, up->text, va, pa, *pte);
}
uintptr