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 = .); } - }