VirtualBox

Changeset 73043 in vbox for trunk


Ignore:
Timestamp:
Jul 11, 2018 2:30:57 AM (7 years ago)
Author:
vboxsync
Message:

VMM/HMSVMR0: bugref:9204 Fix wbinvd.

File:
1 edited

Legend:

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

    r73042 r73043  
    61286128    HMSVM_VALIDATE_EXIT_HANDLER_PARAMS(pVCpu, pSvmTransient);
    61296129
    6130     hmR0SvmAdvanceRipHwAssist(pVCpu, 2);
    6131     int rc = VINF_SUCCESS;
    6132     HMSVM_CHECK_SINGLE_STEP(pVCpu, rc);
    6133     return rc;
     6130    VBOXSTRICTRC rcStrict;
     6131    bool const fSupportsNextRipSave = hmR0SvmSupportsNextRipSave(pVCpu);
     6132    if (fSupportsNextRipSave)
     6133    {
     6134        HMSVM_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK);
     6135        uint8_t const cbInstr = hmR0SvmGetInstrLength(pVCpu);
     6136        rcStrict = IEMExecDecodedWbinvd(pVCpu, cbInstr);
     6137    }
     6138    else
     6139    {
     6140        HMSVM_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
     6141        rcStrict = IEMExecOne(pVCpu);
     6142    }
     6143
     6144    if (rcStrict == VINF_IEM_RAISED_XCPT)
     6145    {
     6146        rcStrict = VINF_SUCCESS;
     6147        ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_RAISED_XCPT_MASK);
     6148    }
     6149    HMSVM_CHECK_SINGLE_STEP(pVCpu, rcStrict);
     6150    return VBOXSTRICTRC_TODO(rcStrict);
    61346151}
    61356152
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