summaryrefslogtreecommitdiff
path: root/kernel/kalloc.c
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2019-07-17 05:53:47 -0400
committerFrans Kaashoek <[email protected]>2019-07-17 05:53:47 -0400
commitb924e44f06c9c0882a2cffe6c9215b12c5aee2e6 (patch)
treeb1204b01142d7a5b41988b87a4c06b0aabe8b5c9 /kernel/kalloc.c
parentce53416f4970ebb137c8e66dc75488cfefaf084d (diff)
parentebc39372096280a4a5957d3e3836c859e5d78a79 (diff)
downloadxv6-labs-b924e44f06c9c0882a2cffe6c9215b12c5aee2e6.tar.gz
xv6-labs-b924e44f06c9c0882a2cffe6c9215b12c5aee2e6.tar.bz2
xv6-labs-b924e44f06c9c0882a2cffe6c9215b12c5aee2e6.zip
Merge branch 'riscv' of g.csail.mit.edu:xv6-dev into riscv
Diffstat (limited to 'kernel/kalloc.c')
-rw-r--r--kernel/kalloc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/kalloc.c b/kernel/kalloc.c
index afadb02..d72e0ab 100644
--- a/kernel/kalloc.c
+++ b/kernel/kalloc.c
@@ -55,8 +55,9 @@ kfree(void *pa)
// Fill with junk to catch dangling refs.
memset(pa, 1, PGSIZE);
- acquire(&kmem.lock);
r = (struct run*)pa;
+
+ acquire(&kmem.lock);
r->next = kmem.freelist;
kmem.freelist = r;
release(&kmem.lock);
@@ -75,6 +76,7 @@ kalloc(void)
if(r)
kmem.freelist = r->next;
release(&kmem.lock);
+
if(r)
memset((char*)r, 5, PGSIZE); // fill with junk
return (void*)r;