From 47d85eb2817c23f00a3fdeb278e11ed7f4c1d81a Mon Sep 17 00:00:00 2001 From: Bananymous Date: Sat, 4 Apr 2026 22:32:55 +0300 Subject: [PATCH] Kernel: Pass the actual vaddr range to reserve pages --- kernel/kernel/Memory/MemoryRegion.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/kernel/Memory/MemoryRegion.cpp b/kernel/kernel/Memory/MemoryRegion.cpp index 3bcda4ea..a405ca8a 100644 --- a/kernel/kernel/Memory/MemoryRegion.cpp +++ b/kernel/kernel/Memory/MemoryRegion.cpp @@ -22,8 +22,10 @@ namespace Kernel BAN::ErrorOr MemoryRegion::initialize(AddressRange address_range) { - size_t needed_pages = BAN::Math::div_round_up(m_size, PAGE_SIZE); - m_vaddr = m_page_table.reserve_free_contiguous_pages(needed_pages, address_range.start); + if (auto rem = address_range.end % PAGE_SIZE) + address_range.end += PAGE_SIZE - rem; + const size_t needed_pages = BAN::Math::div_round_up(m_size, PAGE_SIZE); + m_vaddr = m_page_table.reserve_free_contiguous_pages(needed_pages, address_range.start, address_range.end); if (m_vaddr == 0) return BAN::Error::from_errno(ENOMEM); if (m_vaddr + m_size > address_range.end)