X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/d251b620d312e819923e55e223e0eb43b72a3bc6..839da03f6ebe838d780e52190318d4c3048990f1:/lunaix-os/kernel/mm/vmm.c diff --git a/lunaix-os/kernel/mm/vmm.c b/lunaix-os/kernel/mm/vmm.c index 1453c89..fe3d65c 100644 --- a/lunaix-os/kernel/mm/vmm.c +++ b/lunaix-os/kernel/mm/vmm.c @@ -51,7 +51,9 @@ vmm_set_mapping(uintptr_t mnt, } // This must be writable - l1pt->entry[l1_inx] = NEW_L1_ENTRY(attr | PG_WRITE, new_l1pt_pa); + l1pt->entry[l1_inx] = + NEW_L1_ENTRY(attr | PG_WRITE | PG_PRESENT, new_l1pt_pa); + memset((void*)l2pt, 0, PG_SIZE); } else { x86_pte_t pte = l2pt->entry[l2_inx]; @@ -64,6 +66,10 @@ vmm_set_mapping(uintptr_t mnt, cpu_invplg(va); } + if ((options & VMAP_NOMAP)) { + return 1; + } + l2pt->entry[l2_inx] = NEW_L2_ENTRY(attr, pa); return 1; }