mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 23:37:35 +00:00
Kernel: Remap all regions referring to a PurgeableVMObject on purge
Otherwise we won't get page faults next time you try to access the purged memory.
This commit is contained in:
parent
92b46d9814
commit
a22b7f96fc
1 changed files with 7 additions and 1 deletions
|
@ -1,5 +1,6 @@
|
||||||
#include <Kernel/VM/PurgeableVMObject.h>
|
#include <Kernel/VM/MemoryManager.h>
|
||||||
#include <Kernel/VM/PhysicalPage.h>
|
#include <Kernel/VM/PhysicalPage.h>
|
||||||
|
#include <Kernel/VM/PurgeableVMObject.h>
|
||||||
|
|
||||||
NonnullRefPtr<PurgeableVMObject> PurgeableVMObject::create_with_size(size_t size)
|
NonnullRefPtr<PurgeableVMObject> PurgeableVMObject::create_with_size(size_t size)
|
||||||
{
|
{
|
||||||
|
@ -37,5 +38,10 @@ int PurgeableVMObject::purge()
|
||||||
m_physical_pages[i] = nullptr;
|
m_physical_pages[i] = nullptr;
|
||||||
}
|
}
|
||||||
m_was_purged = true;
|
m_was_purged = true;
|
||||||
|
|
||||||
|
for_each_region([&](auto& region) {
|
||||||
|
region.remap();
|
||||||
|
});
|
||||||
|
|
||||||
return purged_page_count;
|
return purged_page_count;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue