From 9ce8bd25f537b91a0b6092ca6b094658f3b896b9 Mon Sep 17 00:00:00 2001 From: Matheus Date: Sun, 7 May 2023 15:08:33 -0300 Subject: [PATCH] vmm: fix getting free range at edge of spaces --- kernel-src/include/x86-64/arch/mmu.h | 2 +- kernel-src/mm/vmm.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel-src/include/x86-64/arch/mmu.h b/kernel-src/include/x86-64/arch/mmu.h index 59de533e..fa5971c8 100644 --- a/kernel-src/include/x86-64/arch/mmu.h +++ b/kernel-src/include/x86-64/arch/mmu.h @@ -8,7 +8,7 @@ #define KERNELSPACE_START (void *)0xffff800000000000 #define KERNELSPACE_END (void *)0xffffffffffffffff #define USERSPACE_START (void *)0x0000000000001000 -#define USERSPACE_END (void *)0x00007fffffffffff +#define USERSPACE_END (void *)0x0000800000000000 #define PAGE_SIZE 4096 #define ARCH_MMU_FLAGS_READ (uint64_t)1 diff --git a/kernel-src/mm/vmm.c b/kernel-src/mm/vmm.c index e91bcb73..66fd9930 100644 --- a/kernel-src/mm/vmm.c +++ b/kernel-src/mm/vmm.c @@ -83,9 +83,9 @@ static vmmspace_t kernelspace = { // returns a pointer to the space of vaddr static vmmspace_t *getspace(void *vaddr) { - if (USERSPACE_START <= vaddr && vaddr <= USERSPACE_END) + if (USERSPACE_START <= vaddr && vaddr < USERSPACE_END) return &_cpu()->vmmctx->space; - else if (KERNELSPACE_START <= vaddr && vaddr <= KERNELSPACE_END) + else if (KERNELSPACE_START <= vaddr && vaddr < KERNELSPACE_END) return &kernelspace; else return NULL;