summaryrefslogtreecommitdiff
path: root/Kernel/Prekernel
diff options
context:
space:
mode:
authorGunnar Beutner <gbeutner@serenityos.org>2021-07-20 12:48:14 +0200
committerAndreas Kling <kling@serenityos.org>2021-07-20 15:12:19 +0200
commit4fdee56ba35b7d42ed8f729ec60ebbec86adbf5f (patch)
treeab6097776e41e222bd398bb983759367029f8443 /Kernel/Prekernel
parent05fc75f9942462d76b4f9bbaa5e004ed36091f2e (diff)
downloadserenity-4fdee56ba35b7d42ed8f729ec60ebbec86adbf5f.zip
Prekernel: Make sure to reload CR3 after modifying the page tables
Diffstat (limited to 'Kernel/Prekernel')
-rw-r--r--Kernel/Prekernel/init.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/Kernel/Prekernel/init.cpp b/Kernel/Prekernel/init.cpp
index d079b2c661..0ce057f3a5 100644
--- a/Kernel/Prekernel/init.cpp
+++ b/Kernel/Prekernel/init.cpp
@@ -179,6 +179,8 @@ extern "C" [[noreturn]] void init()
for (FlatPtr vaddr = (FlatPtr)end_of_prekernel_image; vaddr < MAX_KERNEL_SIZE; vaddr += PAGE_SIZE)
boot_pd0_pts[vaddr >> 12] = 0;
+ reload_cr3();
+
void (*entry)(BootInfo const&) = (void (*)(BootInfo const&))kernel_elf_header.e_entry;
entry(*adjust_by_load_base(&info));