VirtualBox

Changeset 70356 in vbox


Ignore:
Timestamp:
Dec 27, 2017 9:06:57 AM (7 years ago)
Author:
vboxsync
Message:

VMM/HMSVMR0: When intercepting all exceptions (debug mode), don't triple-fault the outer guest if the nested-hypervisor is intercepting SHUTDOWN.

File:
1 edited

Legend:

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

    r70354 r70356  
    7272    { \
    7373        int rc = hmR0SvmCheckExitDueToEventDelivery(pVCpu, pCtx, pSvmTransient); \
    74         if (RT_LIKELY(rc == VINF_SUCCESS)) { /* likely */ } \
    75         else if (rc == VINF_HM_DOUBLE_FAULT) \
    76             return VINF_SUCCESS; \
     74        if (RT_LIKELY(rc == VINF_SUCCESS))        { /* continue #VMEXIT handling */ } \
     75        else if (     rc == VINF_HM_DOUBLE_FAULT) { return VINF_SUCCESS;            } \
     76        else if (     rc == VINF_EM_RESET \
     77                 &&   CPUMIsGuestSvmCtrlInterceptSet(pVCpu, pCtx, SVM_CTRL_INTERCEPT_SHUTDOWN)) \
     78            return VBOXSTRICTRC_TODO(IEMExecSvmVmexit(pVCpu, SVM_EXIT_SHUTDOWN, 0, 0)); \
    7779        else \
    7880            return rc; \
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