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;