Changeset 45545 in vbox for trunk/src/VBox/VMM/VMMR0
- Timestamp:
- Apr 14, 2013 5:06:58 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 85028
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r45544 r45545 4726 4726 { 4727 4727 int rc = hmR0VmxReadIdtVectoringInfoVmcs(pVmxTransient); 4728 AssertRC Return(rc,rc);4728 AssertRC(rc); 4729 4729 if (VMX_IDT_VECTORING_INFO_VALID(pVmxTransient->uIdtVectoringInfo)) 4730 4730 { … … 4749 4749 { 4750 4750 if ( hmR0VmxIsBenignXcpt(uIdtVector) 4751 || hmR0VmxIsBenignXcpt(uExitVector) 4752 || ( hmR0VmxIsContributoryXcpt(uIdtVector) 4753 && uExitVector == X86_XCPT_PF)) 4751 || hmR0VmxIsBenignXcpt(uExitVector)) 4754 4752 { 4755 4753 enmReflect = VMXREFLECTXCPT_XCPT; 4756 4754 } 4757 else if ( (pVCpu->hm.s.vmx.u32XcptBitmap & RT_BIT(X86_XCPT_PF))4758 && uIdtVector == X86_XCPT_PF4759 && uExitVector == X86_XCPT_PF)4755 else if ( uExitVector == X86_XCPT_PF 4756 && ( hmR0VmxIsContributoryXcpt(uIdtVector) 4757 || uIdtVector == X86_XCPT_PF)) 4760 4758 { 4761 4759 pVmxTransient->fVectoringPF = true; … … 4768 4766 else if ( hmR0VmxInterceptingContributoryXcptsOrPF(pVCpu) 4769 4767 && uIdtVector == X86_XCPT_PF 4770 && hmR0VmxIsContributoryXcpt(uExitVector)) 4768 && ( hmR0VmxIsContributoryXcpt(uExitVector) 4769 || uExitVector == X86_XCPT_PF)) 4771 4770 { 4772 4771 enmReflect = VMXREFLECTXCPT_DF; … … 4821 4820 } 4822 4821 4823 default: /* shut up gcc. */ 4822 default: 4823 Assert(rc == VINF_SUCCESS); 4824 4824 break; 4825 4825 }
Note:
See TracChangeset
for help on using the changeset viewer.