diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/proc.c | 4 | ||||
| -rw-r--r-- | kernel/vm.c | 5 | 
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;  } | 
