VirtualBox

Changeset 72390 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
May 30, 2018 10:33:09 AM (7 years ago)
Author:
vboxsync
Message:

VMM/HMVMXR0: Workaround erratum with INVVPID outside 64-bit mode not invalidating 64-bit linear addresses.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r72299 r72390  
    19041904        if (pVM->hm.s.vmx.fVpid)
    19051905        {
    1906             if (pVM->hm.s.vmx.Msrs.u64EptVpidCaps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_INDIV_ADDR)
     1906            bool fVpidFlush = RT_BOOL(pVM->hm.s.vmx.Msrs.u64EptVpidCaps & MSR_IA32_VMX_EPT_VPID_CAP_INVVPID_INDIV_ADDR);
     1907
     1908#if HC_ARCH_BITS == 32 && defined(VBOX_ENABLE_64_BITS_GUESTS)
     1909            /*
     1910             * Workaround Erratum BV75, AAJ159 and others that affect several Intel CPUs
     1911             * where executing INVVPID outside 64-bit mode does not flush translations of
     1912             * 64-bit linear addresses, see @bugref{6208#c72}.
     1913             */
     1914            if (RT_HI_U32(GCVirt))
     1915                fVpidFlush = false;
     1916#endif
     1917
     1918            if (fVpidFlush)
    19071919            {
    19081920                hmR0VmxFlushVpid(pVM, pVCpu, VMXFLUSHVPID_INDIV_ADDR, GCVirt);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette