From 6276eec4ba8249dfeb73be7b4fa7e37573e00eae Mon Sep 17 00:00:00 2001 From: Matheus Date: Thu, 10 Aug 2023 16:41:32 -0300 Subject: [PATCH] vmm: fix unmap split --- kernel-src/mm/vmm.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kernel-src/mm/vmm.c b/kernel-src/mm/vmm.c index 2dc9c662..bd1cdeb5 100644 --- a/kernel-src/mm/vmm.c +++ b/kernel-src/mm/vmm.c @@ -257,6 +257,11 @@ static void unmap(vmmspace_t *space, void *address, size_t size) { new->start = top; new->size = (uintptr_t)rangetop - (uintptr_t)new->start; range->size = (uintptr_t)address - (uintptr_t)range->start; + + if (range->next) + range->next->prev = new; + + // new->next is set by the copy in *new = *range new->prev = range; range->next = new;