|
@@ -321,10 +321,12 @@ void AddressSpace::remove_all_regions(Badge<Process>)
|
|
{
|
|
{
|
|
VERIFY(Thread::current() == g_finalizer);
|
|
VERIFY(Thread::current() == g_finalizer);
|
|
SpinlockLocker locker(m_lock);
|
|
SpinlockLocker locker(m_lock);
|
|
- SpinlockLocker pd_locker(m_page_directory->get_lock());
|
|
|
|
- SpinlockLocker mm_locker(s_mm_lock);
|
|
|
|
- for (auto& region : m_regions)
|
|
|
|
- (*region).unmap_with_locks_held(Region::ShouldDeallocateVirtualRange::No, ShouldFlushTLB::No, pd_locker, mm_locker);
|
|
|
|
|
|
+ {
|
|
|
|
+ SpinlockLocker pd_locker(m_page_directory->get_lock());
|
|
|
|
+ SpinlockLocker mm_locker(s_mm_lock);
|
|
|
|
+ for (auto& region : m_regions)
|
|
|
|
+ (*region).unmap_with_locks_held(Region::ShouldDeallocateVirtualRange::No, ShouldFlushTLB::No, pd_locker, mm_locker);
|
|
|
|
+ }
|
|
m_regions.clear();
|
|
m_regions.clear();
|
|
}
|
|
}
|
|
|
|
|