aboutsummaryrefslogtreecommitdiff
path: root/pk
diff options
context:
space:
mode:
authorScott Beamer <sbeamer@eecs.berkeley.edu>2014-05-06 15:02:48 -0700
committerScott Beamer <sbeamer@eecs.berkeley.edu>2014-05-06 15:02:48 -0700
commit3d8acf5bf5ec26c28316874a5e55e15552584a09 (patch)
tree08d3f299eeb7ab82b60f5e1239107dc6f0fdd514 /pk
parent75bc78fac86594abe89e76352701dc48e8352394 (diff)
downloadpk-3d8acf5bf5ec26c28316874a5e55e15552584a09.zip
pk-3d8acf5bf5ec26c28316874a5e55e15552584a09.tar.gz
pk-3d8acf5bf5ec26c28316874a5e55e15552584a09.tar.bz2
fixes vm leak. pages that faulted never decref'd their vmr so it wasn't reused
Diffstat (limited to 'pk')
-rw-r--r--pk/vm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/pk/vm.c b/pk/vm.c
index 6a3dd3b..768a9b3 100644
--- a/pk/vm.c
+++ b/pk/vm.c
@@ -183,6 +183,7 @@ static int __handle_page_fault(uintptr_t vaddr, int prot)
}
else
memset((void*)vaddr, 0, RISCV_PGSIZE);
+ __vmr_decref(v, 1);
*pte = pte_create(ppn, v->prot, v->prot);
}