Kernel: Fix assertion when releasing contiguous memory region

There is no guarantee that the memory manager lock is held when
physical pages are released, so just acquire the memory manager
lock.
This commit is contained in:
Tom 2020-08-20 16:41:05 -06:00 committed by Andreas Kling
parent 4dfe797263
commit cf8ce839da
Notes: sideshowbarker 2024-07-19 03:22:54 +09:00

View file

@ -453,7 +453,7 @@ RefPtr<PhysicalPage> MemoryManager::allocate_user_physical_page(ShouldZeroFill s
void MemoryManager::deallocate_supervisor_physical_page(PhysicalPage&& page)
{
ASSERT(s_mm_lock.is_locked());
ScopedSpinLock lock(s_mm_lock);
for (auto& region : m_super_physical_regions) {
if (!region.contains(page)) {
klog() << "MM: deallocate_supervisor_physical_page: " << page.paddr() << " not in " << region.lower() << " -> " << region.upper();