From d2e21f9380761c61b66b91d98c2071adb160abef Mon Sep 17 00:00:00 2001 From: Bananymous Date: Wed, 6 May 2026 15:05:02 +0300 Subject: [PATCH] Kernel: Fix 64 bit page table range reservation from lower->higher half --- kernel/arch/x86_64/PageTable.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/kernel/arch/x86_64/PageTable.cpp b/kernel/arch/x86_64/PageTable.cpp index 2fbfe4c0..094c703f 100644 --- a/kernel/arch/x86_64/PageTable.cpp +++ b/kernel/arch/x86_64/PageTable.cpp @@ -743,8 +743,7 @@ namespace Kernel paddr_t PageTable::physical_address_of(vaddr_t addr) const { - uint64_t page_data = get_page_data(addr); - return page_data & s_page_addr_mask; + return get_page_data(addr) & s_page_addr_mask; } bool PageTable::reserve_page(vaddr_t vaddr, bool only_free, bool invalidate) @@ -875,7 +874,7 @@ namespace Kernel { if (!is_canonical(vaddr + page * PAGE_SIZE)) { - vaddr = canonicalize(uncanonicalize(vaddr) + page * PAGE_SIZE); + vaddr = canonicalize(uncanonicalize(vaddr + page * PAGE_SIZE)); valid = false; break; }