VirtualBox

Changeset 75680 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Nov 23, 2018 5:50:33 AM (6 years ago)
Author:
vboxsync
Message:

VMM/IEM: Nested SVM: bugref:7243 IRET intercept does not clear NMI blocking.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h

    r75671 r75680  
    38433843IEM_CIMPL_DEF_1(iemCImpl_iret, IEMMODE, enmEffOpSize)
    38443844{
    3845     /*
    3846      * First, clear NMI blocking, if any, before causing any exceptions.
    3847      * See Intel spec. 6.7.1 "Handling Multiple NMIs".
    3848      */
    38493845    bool const fBlockingNmi = VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_BLOCK_NMIS);
    3850     if (fBlockingNmi)
    3851         VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_BLOCK_NMIS);
    38523846
    38533847#ifdef VBOX_WITH_NESTED_HWVIRT_VMX
     
    38633857
    38643858    /*
    3865      * The SVM nested-guest intercept for iret takes priority over all exceptions,
    3866      * see AMD spec. "15.9 Instruction Intercepts".
     3859     * The SVM nested-guest intercept for IRET takes priority over all exceptions,
     3860     * The NMI is still held pending (which I assume means blocking of further NMIs
     3861     * is in effect).
     3862     *
     3863     * See AMD spec. 15.9 "Instruction Intercepts".
     3864     * See AMD spec. 15.21.9 "NMI Support".
    38673865     */
    38683866    if (IEM_SVM_IS_CTRL_INTERCEPT_SET(pVCpu, SVM_CTRL_INTERCEPT_IRET))
     
    38723870        IEM_SVM_VMEXIT_RET(pVCpu, SVM_EXIT_IRET, 0 /* uExitInfo1 */, 0 /* uExitInfo2 */);
    38733871    }
     3872
     3873    /*
     3874     * Clear NMI blocking, if any, before causing any further exceptions.
     3875     * See Intel spec. 6.7.1 "Handling Multiple NMIs".
     3876     */
     3877    if (fBlockingNmi)
     3878        VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_BLOCK_NMIS);
    38743879
    38753880    /*
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