From adee82c3e7334a09996c0fe9cc75d9a80abc81c8 Mon Sep 17 00:00:00 2001 From: Robert Morris <rtm@csail.mit.edu> Date: Thu, 13 Aug 2020 10:22:07 -0400 Subject: handle another out-of-memory in fork(). the policy here is not consistent, since other calls (e.g. exec()) panic on out of memory. --- kernel/vm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'kernel/vm.c') 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; } -- cgit v1.2.3