From 54ba636ecc8cbd44776c998a68a666b0b6f6abae Mon Sep 17 00:00:00 2001 From: Ada Christine Date: Thu, 24 Feb 2022 19:16:09 +0000 Subject: don't decrement references on non-physical pages --- kc/core/memory/page_stack.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kc/core/memory/page_stack.c b/kc/core/memory/page_stack.c index 92c5cff..aed38f2 100644 --- a/kc/core/memory/page_stack.c +++ b/kc/core/memory/page_stack.c @@ -62,8 +62,6 @@ kc_phys_addr page_stack_alloc(enum page_alloc_flags type) void page_stack_free(kc_phys_addr page) { - // immediately release a reference - int referents = page_stack_dec_ref(page); // freeing a page only makes sense for present physical pages if (!page_stack_get_present(page)) @@ -71,6 +69,9 @@ void page_stack_free(kc_phys_addr page) return; } + // immediately release a reference + int referents = page_stack_dec_ref(page); + // only actually free the page if it has no more references if (referents == 0) { -- cgit v1.3.1-1-g115d