vmm: Mask NX / unused bits in guest page walks The guest can (and does) set the NX bit. Similarly, bits 62:52 are ignored and could be used in the future. Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
diff --git a/user/vmm/vmx.c b/user/vmm/vmx.c index afc0ee0..8528958 100644 --- a/user/vmm/vmx.c +++ b/user/vmm/vmx.c
@@ -57,6 +57,8 @@ for (int shift = PML4_SHIFT; shift >= PML1_SHIFT; shift -= BITS_PER_PML) { entry = ptptr[PMLx(va, shift)]; + /* bit 63 can be NX. Bits 62:52 are ignored (for PML4) */ + entry &= 0x000fffffffffffff; if (!PAGE_PRESENT(entry)) return -1;