Merge branch 'master' into iso-9660
[lunaix-os.git] / lunaix-os / kernel / mm / vmm.c
index 6e134fd0e2ec4da15a1590fe0ccb971cde1a3d8e..3b28bd980eefb5bdb54d6439871c8c964d3ad75a 100644 (file)
@@ -3,6 +3,9 @@
 #include <lunaix/mm/pmm.h>
 #include <lunaix/mm/vmm.h>
 #include <lunaix/spike.h>
 #include <lunaix/mm/pmm.h>
 #include <lunaix/mm/vmm.h>
 #include <lunaix/spike.h>
+#include <lunaix/syslog.h>
+
+LOG_MODULE("VMM")
 
 void
 vmm_init()
 
 void
 vmm_init()
@@ -54,6 +57,9 @@ vmm_set_mapping(uintptr_t mnt,
         l1pt->entry[l1_inx] =
           NEW_L1_ENTRY(attr | PG_WRITE | PG_PRESENT, new_l1pt_pa);
 
         l1pt->entry[l1_inx] =
           NEW_L1_ENTRY(attr | PG_WRITE | PG_PRESENT, new_l1pt_pa);
 
+        // make sure our new l2 table is visible to CPU
+        cpu_invplg(l2pt);
+
         memset((void*)l2pt, 0, PG_SIZE);
     } else {
         x86_pte_t pte = l2pt->entry[l2_inx];
         memset((void*)l2pt, 0, PG_SIZE);
     } else {
         x86_pte_t pte = l2pt->entry[l2_inx];