- Timestamp:
- Jun 6, 2019 7:05:58 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r78978 r79015 12844 12844 static VBOXSTRICTRC hmR0VmxCheckExitDueToEventDelivery(PVMCPU pVCpu, PVMXTRANSIENT pVmxTransient) 12845 12845 { 12846 uint32_t const uExitVector = VMX_EXIT_INT_INFO_VECTOR(pVmxTransient->uExitIntInfo);12847 12848 int rc2 = hmR0VmxReadIdtVectoringInfoVmcs(pVmxTransient);12849 rc2 |= hmR0VmxReadExitIntInfoVmcs(pVmxTransient);12850 AssertRCReturn(rc2, rc2);12851 12852 12846 VBOXSTRICTRC rcStrict = VINF_SUCCESS; 12853 12847 PCVMXVMCSINFO pVmcsInfo = pVmxTransient->pVmcsInfo; 12848 12849 /* Read the IDT vectoring info. and VM-exit interruption info. */ 12850 { 12851 int rc = hmR0VmxReadIdtVectoringInfoVmcs(pVmxTransient); 12852 rc |= hmR0VmxReadExitIntInfoVmcs(pVmxTransient); 12853 AssertRCReturn(rc, rc); 12854 } 12855 12856 uint32_t const uExitVector = VMX_EXIT_INT_INFO_VECTOR(pVmxTransient->uExitIntInfo); 12854 12857 if (VMX_IDT_VECTORING_INFO_IS_VALID(pVmxTransient->uIdtVectoringInfo)) 12855 12858 { … … 12880 12883 uint32_t const fIdtVectorFlags = hmR0VmxGetIemXcptFlags(uIdtVector, uIdtVectorType); 12881 12884 uint32_t const fExitVectorFlags = hmR0VmxGetIemXcptFlags(uExitVector, uExitVectorType); 12885 12882 12886 /** @todo Make AssertMsgReturn as just AssertMsg later. */ 12883 12887 AssertMsgReturn(uExitVectorType == VMX_EXIT_INT_INFO_TYPE_HW_XCPT, … … 12939 12943 if (VMX_IDT_VECTORING_INFO_IS_ERROR_CODE_VALID(pVmxTransient->uIdtVectoringInfo)) 12940 12944 { 12941 rc2= hmR0VmxReadIdtVectoringErrorCodeVmcs(pVmxTransient);12942 AssertRCReturn(rc 2, rc2);12945 int rc = hmR0VmxReadIdtVectoringErrorCodeVmcs(pVmxTransient); 12946 AssertRCReturn(rc, rc); 12943 12947 u32ErrCode = pVmxTransient->uIdtVectoringErrorCode; 12944 12948 }
Note:
See TracChangeset
for help on using the changeset viewer.