VirtualBox

Changeset 48998 in vbox for trunk/src/VBox/VMM/VMMR0


Ignore:
Timestamp:
Oct 9, 2013 11:41:26 AM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
89720
Message:

VMM/HMVMXR0: Propagate all unexpected exits to release log, slight changes to error macro names.

File:
1 edited

Legend:

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

    r48995 r48998  
    184184                                                    ("Illegal migration! Entered on CPU %u Current %u\n", \
    185185                                                    pVCpu->hm.s.idEnteredCpu, RTMpCpuId())); \
     186
     187/** Helper macro for VM-exit handlers called unexpectedly. */
     188#define HMVMX_RETURN_UNEXPECTED_EXIT() \
     189    do { \
     190        pVCpu->hm.s.u32HMError = pVmxTransient->uExitReason; \
     191        return VERR_VMX_UNEXPECTED_EXIT; \
     192    } while (0)
     193
    186194
    187195/*******************************************************************************
     
    88668874        {
    88678875            pVCpu->hm.s.u32HMError = uExitIntrInfo;
    8868             rc = VERR_VMX_UNEXPECTED_INTERRUPTION_EXIT_CODE;
    8869             AssertMsgFailed(("Unexpected interruption code %#x\n", VMX_EXIT_INTERRUPTION_INFO_TYPE(uExitIntrInfo)));
     8876            rc = VERR_VMX_UNEXPECTED_INTERRUPTION_EXIT_TYPE;
     8877            AssertMsgFailed(("Unexpected interruption info %#x\n", VMX_EXIT_INTERRUPTION_INFO_TYPE(uExitIntrInfo)));
    88708878            break;
    88718879        }
     
    89028910    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    89038911    AssertMsgFailed(("Unexpected NMI-window exit.\n"));
    8904     pVCpu->hm.s.u32HMError = VMX_EXIT_NMI_WINDOW;
    8905     return VERR_VMX_UNEXPECTED_EXIT_CODE;
     8912    HMVMX_RETURN_UNEXPECTED_EXIT();
    89068913}
    89078914
     
    89658972
    89668973    AssertMsgFailed(("hmR0VmxExitGetsec: unexpected VM-exit when CR4.SMXE is 0.\n"));
    8967     pVCpu->hm.s.u32HMError = VMX_EXIT_GETSEC;
    8968     return VERR_VMX_UNEXPECTED_EXIT_CODE;
     8974    HMVMX_RETURN_UNEXPECTED_EXIT();
    89698975}
    89708976
     
    91589164     */
    91599165    AssertMsgFailed(("Unexpected RSM VM-exit. pVCpu=%p pMixedCtx=%p\n", pVCpu, pMixedCtx));
    9160     pVCpu->hm.s.u32HMError = VMX_EXIT_RSM;
    9161     return VERR_VMX_UNEXPECTED_EXIT_CODE;
     9166    HMVMX_RETURN_UNEXPECTED_EXIT();
    91629167}
    91639168
     
    91759180     */
    91769181    AssertMsgFailed(("Unexpected SMI VM-exit. pVCpu=%p pMixedCtx=%p\n", pVCpu, pMixedCtx));
    9177     pVCpu->hm.s.u32HMError = VMX_EXIT_SMI;
    9178     return VERR_VMX_UNEXPECTED_EXIT_CODE;
     9182    HMVMX_RETURN_UNEXPECTED_EXIT();
    91799183}
    91809184
     
    91879191    /* Same treatment as VMX_EXIT_SMI. See comment in hmR0VmxExitSmi(). */
    91889192    AssertMsgFailed(("Unexpected IO SMI VM-exit. pVCpu=%p pMixedCtx=%p\n", pVCpu, pMixedCtx));
    9189     pVCpu->hm.s.u32HMError = VMX_EXIT_IO_SMI;
    9190     return VERR_VMX_UNEXPECTED_EXIT_CODE;
     9193    HMVMX_RETURN_UNEXPECTED_EXIT();
    91919194}
    91929195
     
    92039206     */
    92049207    AssertMsgFailed(("Unexpected SIPI VM-exit. pVCpu=%p pMixedCtx=%p\n", pVCpu, pMixedCtx));
    9205     pVCpu->hm.s.u32HMError = VMX_EXIT_SIPI;
    9206     return VERR_VMX_UNEXPECTED_EXIT_CODE;
     9208    HMVMX_RETURN_UNEXPECTED_EXIT();
    92079209}
    92089210
     
    93749376{
    93759377    AssertMsgFailed(("Unexpected MSR-load exit. pVCpu=%p pMixedCtx=%p\n", pVCpu, pMixedCtx));
    9376     return VERR_VMX_UNEXPECTED_EXIT_CODE;
     9378    HMVMX_RETURN_UNEXPECTED_EXIT();
    93779379}
    93789380
     
    93859387{
    93869388    AssertMsgFailed(("Unexpected machine-check event exit. pVCpu=%p pMixedCtx=%p\n", pVCpu, pMixedCtx));
    9387     return VERR_VMX_UNEXPECTED_EXIT_CODE;
     9389    HMVMX_RETURN_UNEXPECTED_EXIT();
    93889390}
    93899391
     
    94149416        return VERR_EM_INTERPRETER;
    94159417    AssertMsgFailed(("Unexpected XDTR access. pVCpu=%p pMixedCtx=%p\n", pVCpu, pMixedCtx));
    9416     return VERR_VMX_UNEXPECTED_EXIT_CODE;
     9418    HMVMX_RETURN_UNEXPECTED_EXIT();
    94179419}
    94189420
     
    94309432        return VERR_EM_INTERPRETER;
    94319433    AssertMsgFailed(("Unexpected RDRAND exit. pVCpu=%p pMixedCtx=%p\n", pVCpu, pMixedCtx));
    9432     return VERR_VMX_UNEXPECTED_EXIT_CODE;
     9434    HMVMX_RETURN_UNEXPECTED_EXIT();
    94339435}
    94349436
     
    95319533                {
    95329534                    AssertMsgFailed(("Unexpected WRMSR for an MSR in the VMCS. ecx=%#RX32\n", pMixedCtx->ecx));
    9533                     return VERR_VMX_UNEXPECTED_EXIT_CODE;
     9535                    HMVMX_RETURN_UNEXPECTED_EXIT();
    95349536                }
    95359537
     
    95429544                    AssertMsgFailed(("Unexpected WRMSR for an MSR in the auto-load/store area in the VMCS. ecx=%#RX32\n",
    95439545                                     pMixedCtx->ecx));
    9544                     return VERR_VMX_UNEXPECTED_EXIT_CODE;
     9546                    HMVMX_RETURN_UNEXPECTED_EXIT();
    95459547                }
    95469548            }
     
    95649566        return VERR_EM_INTERPRETER;
    95659567    AssertMsgFailed(("Unexpected PAUSE exit. pVCpu=%p pMixedCtx=%p\n", pVCpu, pMixedCtx));
    9566     return VERR_VMX_UNEXPECTED_EXIT_CODE;
     9568    HMVMX_RETURN_UNEXPECTED_EXIT();
    95679569}
    95689570
     
    1010010102    {
    1010110103        AssertMsgFailed(("Unexpected MOV DRx exit. pVCpu=%p pMixedCtx=%p\n", pVCpu, pMixedCtx));
    10102         return VERR_VMX_UNEXPECTED_EXIT_CODE;
     10104        HMVMX_RETURN_UNEXPECTED_EXIT();
    1010310105    }
    1010410106
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