mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-03 15:16:14 +00:00
Kernel: Make PhysicalPage not movable and use atomic ref counting
We should not be moving ref-counted objects.
This commit is contained in:
@@ -378,7 +378,7 @@ OwnPtr<Region> MemoryManager::allocate_kernel_region_with_vmobject(VMObject& vmo
|
||||
return allocate_kernel_region_with_vmobject(range, vmobject, name, access, user_accessible, cacheable);
|
||||
}
|
||||
|
||||
void MemoryManager::deallocate_user_physical_page(PhysicalPage&& page)
|
||||
void MemoryManager::deallocate_user_physical_page(const PhysicalPage& page)
|
||||
{
|
||||
ScopedSpinLock lock(s_mm_lock);
|
||||
for (auto& region : m_user_physical_regions) {
|
||||
@@ -387,7 +387,7 @@ void MemoryManager::deallocate_user_physical_page(PhysicalPage&& page)
|
||||
continue;
|
||||
}
|
||||
|
||||
region.return_page(move(page));
|
||||
region.return_page(page);
|
||||
--m_user_physical_pages_used;
|
||||
|
||||
return;
|
||||
@@ -448,7 +448,7 @@ RefPtr<PhysicalPage> MemoryManager::allocate_user_physical_page(ShouldZeroFill s
|
||||
return page;
|
||||
}
|
||||
|
||||
void MemoryManager::deallocate_supervisor_physical_page(PhysicalPage&& page)
|
||||
void MemoryManager::deallocate_supervisor_physical_page(const PhysicalPage& page)
|
||||
{
|
||||
ScopedSpinLock lock(s_mm_lock);
|
||||
for (auto& region : m_super_physical_regions) {
|
||||
@@ -457,7 +457,7 @@ void MemoryManager::deallocate_supervisor_physical_page(PhysicalPage&& page)
|
||||
continue;
|
||||
}
|
||||
|
||||
region.return_page(move(page));
|
||||
region.return_page(page);
|
||||
--m_super_physical_pages_used;
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user