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