From 297c0748f0122b97e4d0fa6625a2d99167d020da Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 25 Jul 2021 02:11:32 +0200 Subject: [PATCH] Kernel: Minor cleanup around purge() during physical page allocation --- Kernel/VM/MemoryManager.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Kernel/VM/MemoryManager.cpp b/Kernel/VM/MemoryManager.cpp index 36693404e8..182e5dc923 100644 --- a/Kernel/VM/MemoryManager.cpp +++ b/Kernel/VM/MemoryManager.cpp @@ -876,8 +876,10 @@ RefPtr MemoryManager::allocate_user_physical_page(ShouldZeroFill s for_each_vmobject([&](auto& vmobject) { if (!vmobject.is_anonymous()) return IterationDecision::Continue; - int purged_page_count = static_cast(vmobject).purge(); - if (purged_page_count) { + auto& anonymous_vmobject = static_cast(vmobject); + if (!anonymous_vmobject.is_purgeable() || !anonymous_vmobject.is_volatile()) + return IterationDecision::Continue; + if (auto purged_page_count = anonymous_vmobject.purge()) { dbgln("MM: Purge saved the day! Purged {} pages from AnonymousVMObject", purged_page_count); page = find_free_user_physical_page(false); purged_pages = true;