diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/proc.c | 2 | ||||
| -rw-r--r-- | kernel/vm.c | 3 | 
2 files changed, 4 insertions, 1 deletions
| diff --git a/kernel/proc.c b/kernel/proc.c index 2811142..56314e5 100644 --- a/kernel/proc.c +++ b/kernel/proc.c @@ -161,6 +161,8 @@ proc_pagetable(struct proc *p)    // An empty page table.    pagetable = uvmcreate(); +  if(pagetable == 0) +    return 0;    // map the trampoline code (for system call return)    // at the highest user virtual address. diff --git a/kernel/vm.c b/kernel/vm.c index 92a5ff7..2f3789f 100644 --- a/kernel/vm.c +++ b/kernel/vm.c @@ -195,13 +195,14 @@ uvmunmap(pagetable_t pagetable, uint64 va, uint64 npages, int do_free)  }  // create an empty user page table. +// returns 0 if out of memory.  pagetable_t  uvmcreate()  {    pagetable_t pagetable;    pagetable = (pagetable_t) kalloc();    if(pagetable == 0) -    panic("uvmcreate: out of memory"); +    return 0;    memset(pagetable, 0, PGSIZE);    return pagetable;  } | 
