summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/vm.c b/vm.c
index 1e014a0..9e24ad0 100644
--- a/vm.c
+++ b/vm.c
@@ -148,8 +148,10 @@ unmappages(pagetable_t pagetable, uint64 va, uint64 size, int do_free)
for(;;){
if((pte = walk(pagetable, a, 0)) == 0)
panic("unmappages: walk");
- if((*pte & PTE_V) == 0)
+ if((*pte & PTE_V) == 0){
+ printf("va=%p pte=%p\n", a, *pte);
panic("unmappages: not mapped");
+ }
if(PTE_FLAGS(*pte) == PTE_V)
panic("unmappages: not a leaf");
if(do_free){
@@ -203,7 +205,8 @@ uvmalloc(pagetable_t pagetable, uint64 oldsz, uint64 newsz)
if(newsz < oldsz)
return oldsz;
- a = PGROUNDUP(oldsz);
+ oldsz = PGROUNDUP(oldsz);
+ a = oldsz;
for(; a < newsz; a += PGSIZE){
mem = kalloc();
if(mem == 0){