diff --git a/kernel/src/memory/VMM.cpp b/kernel/src/memory/VMM.cpp index 984f23cd..a8f01fb4 100644 --- a/kernel/src/memory/VMM.cpp +++ b/kernel/src/memory/VMM.cpp @@ -222,7 +222,6 @@ namespace Paging { unmap(virtualAddress); PDE.LargerPages = false; - PML4->entries[PDP_i] = PDE; PDP = (PageTable*)PMM::request_page(); ASSERT(!(PMM_DID_FAIL(PDP))); memset(PDP, 0, PAGE_SIZE); @@ -230,7 +229,7 @@ namespace Paging PDE.Present = true; PDE.ReadWrite = true; if (flags & User) PDE.UserSuper = true; - return map(virtualAddress, physicalAddress, flags); + PML4->entries[PDP_i] = PDE; } PDP = (PageTable*)((uint64_t)PDE.Address << 12); } @@ -259,7 +258,6 @@ namespace Paging { unmap(virtualAddress); PDE.LargerPages = false; - PDP->entries[PD_i] = PDE; PD = (PageTable*)PMM::request_page(); ASSERT(!(PMM_DID_FAIL(PD))); memset(PD, 0, PAGE_SIZE); @@ -267,7 +265,7 @@ namespace Paging PDE.Present = true; PDE.ReadWrite = true; if (flags & User) PDE.UserSuper = true; - return map(virtualAddress, physicalAddress, flags); + PDP->entries[PD_i] = PDE; } PD = (PageTable*)((uint64_t)PDE.Address << 12); }