VirtualBox

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


Ignore:
Timestamp:
Sep 10, 2013 1:10:41 PM (11 years ago)
Author:
vboxsync
Message:

VMM/HMVMXR0: Attempt to fix guru in the switcher case with MOV DRx intercepts.

File:
1 edited

Legend:

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

    r48404 r48407  
    26252625
    26262626        /*
    2627          * The following should not be set (since we're not in SMM mode):
     2627         * The following should -not- be set (since we're not in SMM mode):
    26282628         * - VMX_VMCS_CTRL_ENTRY_ENTRY_SMM
    26292629         * - VMX_VMCS_CTRL_ENTRY_DEACTIVATE_DUALMON
     
    26322632        /** @todo VMX_VMCS_CTRL_ENTRY_LOAD_GUEST_PERF_MSR,
    26332633         *        VMX_VMCS_CTRL_ENTRY_LOAD_GUEST_PAT_MSR,
    2634          *  VMX_VMCS_CTRL_ENTRY_LOAD_GUEST_EFER_MSR */
     2634         *        VMX_VMCS_CTRL_ENTRY_LOAD_GUEST_EFER_MSR */
    26352635
    26362636        if ((val & zap) != val)
     
    36893689              ("Access bit not set for usable segment. idx=%#x sel=%#x attr %#x\n", idxBase, pSelReg, pSelReg->Attr.u));
    36903690
    3691     rc = VMXWriteVmcs32(idxAccess, u32Access);           /* 32-bit guest segment access-rights field. */
     3691    rc = VMXWriteVmcs32(idxAccess, u32Access);              /* 32-bit guest segment access-rights field. */
    36923692    AssertRCReturn(rc, rc);
    36933693    return rc;
     
    39973997    if (pVCpu->hm.s.fContextUseFlags & HM_CHANGED_GUEST_SYSENTER_CS_MSR)
    39983998    {
    3999         rc = VMXWriteVmcs32(VMX_VMCS32_GUEST_SYSENTER_CS,   pMixedCtx->SysEnter.cs);    AssertRCReturn(rc, rc);
     3999        rc = VMXWriteVmcs32(VMX_VMCS32_GUEST_SYSENTER_CS, pMixedCtx->SysEnter.cs);      AssertRCReturn(rc, rc);
    40004000        pVCpu->hm.s.fContextUseFlags &= ~HM_CHANGED_GUEST_SYSENTER_CS_MSR;
    40014001    }
     
    99239923    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    99249924
    9925     /* We should -not- get this VM-exit if the guest is debugging. */
     9925    /* We should -not- get this VM-exit if the guest's debug registers are active. See CPUMR0LoadGuestDebugState(). */
     9926#if HC_ARCH_BITS == 32 && defined(VBOX_WITH_64_BITS_GUESTS) && !defined(VBOX_WITH_HYBRID_32BIT_KERNEL)
     9927    if (   !CPUMIsGuestInLongModeEx(pMixedCtx)      /* EFER is always up-to-date. */
     9928        && CPUMIsGuestDebugStateActive(pVCpu))
     9929#else
    99269930    if (CPUMIsGuestDebugStateActive(pVCpu))
     9931#endif
    99279932    {
    99289933        AssertMsgFailed(("Unexpected MOV DRx exit. pVCpu=%p pMixedCtx=%p\n", pVCpu, pMixedCtx));
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