From 9970bc53e4dff029abf6130446a61822825d06ce Mon Sep 17 00:00:00 2001 From: Kevin Alavik Date: Fri, 16 May 2025 18:30:31 +0200 Subject: [PATCH] fix/kernel: Fixed valloc/vallocat --- .vscode/settings.json | 3 ++- kernel/src/mm/vmm.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 3d27437..3cef7d5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,6 +17,7 @@ "cpu.h": "c", "nanoprintf.h": "c", "flanterm.h": "c", - "serial.h": "c" + "serial.h": "c", + "kpanic.h": "c" } } \ No newline at end of file diff --git a/kernel/src/mm/vmm.c b/kernel/src/mm/vmm.c index 9be692d..41ff37b 100644 --- a/kernel/src/mm/vmm.c +++ b/kernel/src/mm/vmm.c @@ -52,7 +52,7 @@ void *valloc(vctx_t *ctx, size_t pages, uint64_t flags) while (region) { - if (region->next == NULL || region->start + region->pages < region->next->start) + if (region->next == NULL || region->start + (region->pages * PAGE_SIZE) < region->next->start) { new = (vregion_t *)palloc(1, true); if (!new) @@ -112,7 +112,7 @@ void *vallocat(vctx_t *ctx, size_t pages, uint64_t flags, uint64_t phys) while (region) { - if (region->next == NULL || region->start + region->pages < region->next->start) + if (region->next == NULL || region->start + (region->pages * PAGE_SIZE) < region->next->start) { new = (vregion_t *)palloc(1, true); if (!new)