diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index 850b95c7a0..a2cf5c0a1b 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -142,7 +142,6 @@ bool Process::deallocate_region(Region& region) InterruptDisabler disabler; for (int i = 0; i < m_regions.size(); ++i) { if (&m_regions[i] == ®ion) { - page_directory().range_allocator().deallocate({ region.vaddr(), region.size() }); MM.unmap_region(region); m_regions.remove(i); return true; diff --git a/Kernel/VM/MemoryManager.cpp b/Kernel/VM/MemoryManager.cpp index 6a73d037d7..491b8fa080 100644 --- a/Kernel/VM/MemoryManager.cpp +++ b/Kernel/VM/MemoryManager.cpp @@ -742,6 +742,7 @@ bool MemoryManager::unmap_region(Region& region) dbgprintf("MM: >> Unmapped L%x => P%x <<\n", vaddr, physical_page ? physical_page->paddr().get() : 0); #endif } + region.page_directory()->range_allocator().deallocate({ region.vaddr(), region.size() }); region.release_page_directory(); return true; }