diff --git a/src/arch/x86_64/paging/mod.rs b/src/arch/x86_64/paging/mod.rs index 70d1f0d638df9fda85fceb17fc6c49b8f0a8b2d9..b7ed90667024526a377c8a49df919733ea5498ae 100644 --- a/src/arch/x86_64/paging/mod.rs +++ b/src/arch/x86_64/paging/mod.rs @@ -265,7 +265,10 @@ impl ActivePageTable { }) }; unsafe { + // Activate new page table RmmA::set_table(new_table.frame.start_address()); + // Update mapper to new page table + self.mapper = Mapper::current(); } old_table } diff --git a/src/context/arch/x86_64.rs b/src/context/arch/x86_64.rs index bebc8a2aba75109dea13cd426a378f31b8e83df4..ebb56d0e20b491604eb2af349136cd704e6862bf 100644 --- a/src/context/arch/x86_64.rs +++ b/src/context/arch/x86_64.rs @@ -76,7 +76,7 @@ impl Context { } } - pub fn get_page_utable(&mut self) -> usize { + pub fn get_page_utable(&self) -> usize { self.cr3 }