Changeset 97162 in vbox
- Timestamp:
- Oct 15, 2022 6:33:15 AM (2 years ago)
- svn:sync-xref-src-repo-rev:
- 154135
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/PGM.cpp
r97145 r97162 1679 1679 uint64_t const fGstEptMbzBigPdpteMask = EPT_PDPTE1G_MBZ_MASK 1680 1680 | (RT_BF_GET(fEptVpidCap, VMX_BF_EPT_VPID_CAP_PDPTE_1G) ^ 1) << EPT_E_BIT_LEAF; 1681 uint64_t const GCPhysRsvdAddrMask = pVM->pgm.s.GCPhysInvAddrMask & UINT64_C(0x000fffffffffffff); /* bits 63:52 ignored */1681 //uint64_t const GCPhysRsvdAddrMask = pVM->pgm.s.GCPhysInvAddrMask & UINT64_C(0x000fffffffffffff); /* bits 63:52 ignored */ 1682 1682 #endif 1683 1683 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) … … 1725 1725 && !pVM->cpum.ro.GuestFeatures.fVmxEptXcptVe 1726 1726 && !(fEptVpidCap & MSR_IA32_VMX_EPT_VPID_CAP_ACCESS_DIRTY)); 1727 /* We need to shadow reserved bits as guest EPT tables can set them to trigger EPT misconfigs. */ 1728 pVCpu->pgm.s.fGstEptShadowedPteMask = GCPhysRsvdAddrMask | EPT_PRESENT_MASK | EPT_E_MEMTYPE_MASK | EPT_E_IGNORE_PAT; 1729 pVCpu->pgm.s.fGstEptShadowedPdeMask = GCPhysRsvdAddrMask | EPT_PRESENT_MASK; 1730 pVCpu->pgm.s.fGstEptShadowedBigPdeMask = GCPhysRsvdAddrMask | EPT_PRESENT_MASK | EPT_E_MEMTYPE_MASK | EPT_E_IGNORE_PAT | EPT_E_LEAF; 1731 pVCpu->pgm.s.fGstEptShadowedPdpteMask = GCPhysRsvdAddrMask | EPT_PRESENT_MASK | EPT_E_MEMTYPE_MASK | EPT_E_IGNORE_PAT | EPT_E_LEAF; 1732 pVCpu->pgm.s.fGstEptShadowedPml4eMask = GCPhysRsvdAddrMask | EPT_PRESENT_MASK | EPT_PML4E_MBZ_MASK; 1727 /* We currently do -not- shadow reserved bits in guest page tables but instead trap them using non-present permissions, 1728 see todo in (NestedSyncPT). */ 1729 pVCpu->pgm.s.fGstEptShadowedPteMask = EPT_PRESENT_MASK | EPT_E_MEMTYPE_MASK | EPT_E_IGNORE_PAT; 1730 pVCpu->pgm.s.fGstEptShadowedPdeMask = EPT_PRESENT_MASK; 1731 pVCpu->pgm.s.fGstEptShadowedBigPdeMask = EPT_PRESENT_MASK | EPT_E_MEMTYPE_MASK | EPT_E_IGNORE_PAT | EPT_E_LEAF; 1732 pVCpu->pgm.s.fGstEptShadowedPdpteMask = EPT_PRESENT_MASK | EPT_E_MEMTYPE_MASK | EPT_E_IGNORE_PAT | EPT_E_LEAF; 1733 pVCpu->pgm.s.fGstEptShadowedPml4eMask = EPT_PRESENT_MASK | EPT_PML4E_MBZ_MASK; 1733 1734 /* If mode-based execute control for EPT is enabled, we would need to include bit 10 in the present mask. */ 1734 pVCpu->pgm.s.fGstEptPresentMask = EPT_PRESENT_MASK;1735 pVCpu->pgm.s.fGstEptPresentMask = EPT_PRESENT_MASK; 1735 1736 #endif 1736 1737 }
Note:
See TracChangeset
for help on using the changeset viewer.