diff --git a/kernel/src/arch/x86_64/MMU.cpp b/kernel/src/arch/x86_64/MMU.cpp index 760508c4..cc91b6c3 100644 --- a/kernel/src/arch/x86_64/MMU.cpp +++ b/kernel/src/arch/x86_64/MMU.cpp @@ -212,11 +212,16 @@ namespace MMU auto& l2 = l2_entry(l3, virt); if (!l2.present) { - const u64 addr = TRY(MemoryManager::alloc_frame()); l2.present = true; - l2.set_address(addr); - memset(&page_table(l2), 0, ARCH_PAGE_SIZE); + + if (use_huge_pages == UseHugePages::No) + { + const u64 addr = TRY(MemoryManager::alloc_frame()); + l2.set_address(addr); + memset(&page_table(l2), 0, ARCH_PAGE_SIZE); + } } + if (flags & Flags::ReadWrite) l2.read_write = true; if (flags & Flags::User) l2.user = true;