summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2019-09-08 15:18:38 -0400
committerFrans Kaashoek <[email protected]>2019-09-08 15:19:19 -0400
commit035cca95fe87c67ee1e33b9edfb2d87e24476fa8 (patch)
tree434998759a24273a2ac63d5589c165a5987aed3f
parente5b7fa62cce4787838c0e52dc9f6399babf2e75e (diff)
downloadxv6-labs-035cca95fe87c67ee1e33b9edfb2d87e24476fa8.tar.gz
xv6-labs-035cca95fe87c67ee1e33b9edfb2d87e24476fa8.tar.bz2
xv6-labs-035cca95fe87c67ee1e33b9edfb2d87e24476fa8.zip
Make the end variable be really at the end of bss, and delete + 4096 in freerange()
-rw-r--r--kernel/kalloc.c1
-rw-r--r--kernel/kernel.ld4
2 files changed, 2 insertions, 3 deletions
diff --git a/kernel/kalloc.c b/kernel/kalloc.c
index ae3863b..fa6a0ac 100644
--- a/kernel/kalloc.c
+++ b/kernel/kalloc.c
@@ -35,7 +35,6 @@ freerange(void *pa_start, void *pa_end)
{
char *p;
p = (char*)PGROUNDUP((uint64)pa_start);
- p += 4096; // XXX I can't get kernel.ld to place end beyond the last bss symbol.
for(; p + PGSIZE <= (char*)pa_end; p += PGSIZE)
kfree(p);
}
diff --git a/kernel/kernel.ld b/kernel/kernel.ld
index 711af5b..acc3c8e 100644
--- a/kernel/kernel.ld
+++ b/kernel/kernel.ld
@@ -26,7 +26,7 @@ SECTIONS
}
.bss : {
*(.bss)
- PROVIDE(end = .);
+ *(.sbss*)
+ PROVIDE(end = .);
}
-
}