Преглед на файлове

Prekernel: Make sure to reload CR3 after modifying the page tables

Gunnar Beutner преди 4 години
родител
ревизия
4fdee56ba3
променени са 1 файла, в които са добавени 2 реда и са изтрити 0 реда
  1. 2 0
      Kernel/Prekernel/init.cpp

+ 2 - 0
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)
     for (FlatPtr vaddr = (FlatPtr)end_of_prekernel_image; vaddr < MAX_KERNEL_SIZE; vaddr += PAGE_SIZE)
         boot_pd0_pts[vaddr >> 12] = 0;
         boot_pd0_pts[vaddr >> 12] = 0;
 
 
+    reload_cr3();
+
     void (*entry)(BootInfo const&) = (void (*)(BootInfo const&))kernel_elf_header.e_entry;
     void (*entry)(BootInfo const&) = (void (*)(BootInfo const&))kernel_elf_header.e_entry;
     entry(*adjust_by_load_base(&info));
     entry(*adjust_by_load_base(&info));