summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/proc.c4
-rw-r--r--kernel/vm.c5
2 files changed, 5 insertions, 4 deletions
diff --git a/kernel/proc.c b/kernel/proc.c
index 786e5c3..0d91a59 100644
--- a/kernel/proc.c
+++ b/kernel/proc.c
@@ -232,9 +232,7 @@ growproc(int n)
return -1;
}
} else if(n < 0){
- if((sz = uvmdealloc(p->pagetable, sz, sz + n)) == 0) {
- return -1;
- }
+ sz = uvmdealloc(p->pagetable, sz, sz + n);
}
p->sz = sz;
return 0;
diff --git a/kernel/vm.c b/kernel/vm.c
index 51165b7..8036be7 100644
--- a/kernel/vm.c
+++ b/kernel/vm.c
@@ -268,7 +268,10 @@ uvmdealloc(pagetable_t pagetable, uint64 oldsz, uint64 newsz)
{
if(newsz >= oldsz)
return oldsz;
- uvmunmap(pagetable, newsz, oldsz - newsz, 1);
+
+ uint64 newup = PGROUNDUP(newsz);
+ uvmunmap(pagetable, newup, oldsz - newup, 1);
+
return newsz;
}