Compare commits

...

2 Commits

Author SHA1 Message Date
Mathieu Maret 3b7543064d alloc: simplify full usage 2021-01-26 08:45:13 +01:00
Mathieu Maret 9e5b4f0060 Revert "makefile: disable pie"
This reverts commit f64bbd9d90.
it leads to "Error loading uncompressed kernel without PVH ELF Note"
2021-01-26 08:43:06 +01:00
2 changed files with 3 additions and 9 deletions

View File

@ -20,7 +20,7 @@ cobj=$(csrc:%.c=%.o) arch/$(ARCH)/cpu_context_switch.o arch/$(ARCH)/irq_pit.o
deps = $(csrc:%.c=%.d)
kernel:$(asmobj) $(cobj) linker.ld
$(CC) -m32 -ffreestanding -nostdlib $(cobj) $(asmobj) -o $@ -T linker.ld -lgcc -no-pie
$(CC) -m32 -ffreestanding -nostdlib $(cobj) $(asmobj) -o $@ -T linker.ld -lgcc
objcopy --only-keep-debug $@ $@.sym
objcopy --strip-debug $@

View File

@ -217,9 +217,8 @@ static void *allocFromSlab(struct slabEntry *slab)
if (*next == (vaddr_t)NULL) {
pr_devel("Slab @%d is now full\n", slab);
slab->full = 1;
} else {
slab->freeEl = (void *)(*next);
}
slab->freeEl = (void *)(*next);
return (void *)next;
}
@ -289,12 +288,7 @@ static int freeFromSlab(void *ptr, struct slabEntry *slab)
if ((slabEntry->page <= (vaddr_t)ptr) &&
((vaddr_t)ptr < (slabEntry->page + slabEntry->size))) {
if (slabEntry->full) {
*((vaddr_t *)ptr) = (vaddr_t)NULL;
} else {
*((vaddr_t *)ptr) = (vaddr_t)slabEntry->freeEl;
}
*((vaddr_t *)ptr) = (vaddr_t)slabEntry->freeEl;
slabEntry->freeEl = ptr;
slabEntry->full = 0;
return 1;