diff options
author | Lioncash <mathew1800@gmail.com> | 2019-04-09 11:19:29 -0400 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2019-04-09 13:00:56 -0400 |
commit | 2abf979c35506e1d6dabea74b8ada6581cefe19c (patch) | |
tree | d4020c0ecd0bc52766bd67f97b4f3aa90a38963a /src | |
parent | f14328bf0a420dd4e9b4500023a9ae2493eaab08 (diff) |
kernel/process: Set page table when page table resizes occur.
We need to ensure dynarmic gets a valid pointer if the page table is
resized (the relevant pointers would be invalidated in this scenario).
In this scenario, the page table can be resized depending on what kind
of address space is specified within the NPDM metadata (if it's
present).
Diffstat (limited to 'src')
-rw-r--r-- | src/core/hle/kernel/process.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp index 26c6b95ab..4e94048da 100644 --- a/src/core/hle/kernel/process.cpp +++ b/src/core/hle/kernel/process.cpp @@ -106,6 +106,8 @@ ResultCode Process::LoadFromMetadata(const FileSys::ProgramMetadata& metadata) { is_64bit_process = metadata.Is64BitProgram(); vm_manager.Reset(metadata.GetAddressSpaceType()); + // Ensure that the potentially resized page table is seen by CPU backends. + Memory::SetCurrentPageTable(&vm_manager.page_table); const auto& caps = metadata.GetKernelCapabilities(); const auto capability_init_result = |