1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-23 18:35:07 +00:00

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

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();