VirtualBox

Changeset 15394 in vbox


Ignore:
Timestamp:
Dec 12, 2008 7:40:24 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
40842
Message:

Workaround for guest EFER load regression, see defect comment 36.

File:
1 edited

Legend:

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

    r15389 r15394  
    10901090    /* Load guest debug controls (dr7 & IA32_DEBUGCTL_MSR) (forced to 1 on the 'first' VT-x capable CPUs; this actually includes the newest Nehalem CPUs) */
    10911091    val |= VMX_VMCS_CTRL_ENTRY_CONTROLS_LOAD_DEBUG;
     1092    /* Required for the EFER write below, not supported on all CPUs. */ /** @todo Sander, check this. */
     1093    val |= VMX_VMCS_CTRL_ENTRY_CONTROLS_LOAD_GUEST_EFER_MSR;
    10921094
    10931095    /* 64 bits guest mode? */
     
    15731575    }
    15741576
    1575     /* Unconditionally update the guest EFER. */
    1576     rc = VMXWriteVMCS64(VMX_VMCS_GUEST_EFER_FULL, pCtx->msrEFER);
    1577     AssertRC(rc);
     1577    /* Unconditionally update the guest EFER - on CPUs that supports it. */
     1578    if (pVM->hwaccm.s.vmx.msr.vmx_entry.n.allowed1 & VMX_VMCS_CTRL_ENTRY_CONTROLS_LOAD_GUEST_EFER_MSR)
     1579    {
     1580        rc = VMXWriteVMCS64(VMX_VMCS_GUEST_EFER_FULL, pCtx->msrEFER);
     1581        AssertRC(rc);
     1582    }
    15781583
    15791584    vmxR0UpdateExceptionBitmap(pVM, pVCpu, pCtx);
     
    36193624
    36203625
    3621 #if HC_ARCH_BITS == 32
     3626#if HC_ARCH_BITS == 32 && !defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0)
    36223627/**
    36233628 * Executes VMWRITE
     
    37173722}
    37183723
    3719 #endif
     3724#endif /* HC_ARCH_BITS == 32 && !VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 */
Note: See TracChangeset for help on using the changeset viewer.

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