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.
This commit is contained in:
Liav A 2020-12-20 21:12:32 +02:00 committed by Andreas Kling
parent b37139e111
commit afba614d68
Notes: sideshowbarker 2024-07-19 00:42:54 +09:00

View file

@ -571,8 +571,8 @@ NonnullRefPtrVector<PhysicalPage> MemoryManager::allocate_contiguous_supervisor_
for (auto& region : m_super_physical_regions) { for (auto& region : m_super_physical_regions) {
physical_pages = region.take_contiguous_free_pages((count), true); physical_pages = region.take_contiguous_free_pages((count), true);
if (physical_pages.is_empty()) if (!physical_pages.is_empty())
continue; break;
} }
if (physical_pages.is_empty()) { if (physical_pages.is_empty()) {
@ -598,8 +598,8 @@ RefPtr<PhysicalPage> MemoryManager::allocate_supervisor_physical_page()
for (auto& region : m_super_physical_regions) { for (auto& region : m_super_physical_regions) {
page = region.take_free_page(true); page = region.take_free_page(true);
if (page.is_null()) if (!page.is_null())
continue; break;
} }
if (!page) { if (!page) {