diff options
author | Frans Kaashoek <[email protected]> | 2019-09-08 15:18:38 -0400 |
---|---|---|
committer | Frans Kaashoek <[email protected]> | 2019-09-08 15:19:19 -0400 |
commit | 035cca95fe87c67ee1e33b9edfb2d87e24476fa8 (patch) | |
tree | 434998759a24273a2ac63d5589c165a5987aed3f | |
parent | e5b7fa62cce4787838c0e52dc9f6399babf2e75e (diff) | |
download | xv6-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.c | 1 | ||||
-rw-r--r-- | kernel/kernel.ld | 4 |
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 = .); } - } |