From afba614d6836092b425e6584df6718b8f4805f02 Mon Sep 17 00:00:00 2001 From: Liav A Date: Sun, 20 Dec 2020 21:12:32 +0200 Subject: [PATCH] Kernel: Don't skip if found free page to allocate from a super region This was a bad pattern that wasn't detected because we only had one super physical region that was initialized by MemoryManager. --- Kernel/VM/MemoryManager.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Kernel/VM/MemoryManager.cpp b/Kernel/VM/MemoryManager.cpp index f1c0c32591..28e975577e 100644 --- a/Kernel/VM/MemoryManager.cpp +++ b/Kernel/VM/MemoryManager.cpp @@ -571,8 +571,8 @@ NonnullRefPtrVector MemoryManager::allocate_contiguous_supervisor_ for (auto& region : m_super_physical_regions) { physical_pages = region.take_contiguous_free_pages((count), true); - if (physical_pages.is_empty()) - continue; + if (!physical_pages.is_empty()) + break; } if (physical_pages.is_empty()) { @@ -598,8 +598,8 @@ RefPtr MemoryManager::allocate_supervisor_physical_page() for (auto& region : m_super_physical_regions) { page = region.take_free_page(true); - if (page.is_null()) - continue; + if (!page.is_null()) + break; } if (!page) {