Changeset 45732 in vbox
- Timestamp:
- Apr 25, 2013 2:39:46 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r45722 r45732 4619 4619 /* See Intel spec. 30.7.1.1 "Reflecting Exceptions to Guest Software". */ 4620 4620 VMXREFLECTXCPT enmReflect = VMXREFLECTXCPT_NONE; 4621 RTGCUINTPTR GCPtrFaultAddress = 0;4622 4621 if (uIntType == VMX_IDT_VECTORING_INFO_TYPE_HW_XCPT) 4623 4622 { 4624 4623 enmReflect = VMXREFLECTXCPT_XCPT; 4624 #if 0 4625 4625 if ( hmR0VmxIsContributoryXcpt(uIdtVector) 4626 4626 && uExitVector == X86_XCPT_PF) 4627 4627 { 4628 GCPtrFaultAddress = pMixedCtx->cr2;4629 4628 Log(("IDT: Contributory #PF uCR2=%#RGv\n", pMixedCtx->cr2)); 4630 4629 } 4631 else if ( uExitVector == X86_XCPT_PF 4632 && uIdtVector == X86_XCPT_PF) 4630 else 4631 #endif 4632 if ( uExitVector == X86_XCPT_PF 4633 && uIdtVector == X86_XCPT_PF) 4633 4634 { 4634 4635 pVmxTransient->fVectoringPF = true; 4635 GCPtrFaultAddress = pMixedCtx->cr2;4636 4636 Log(("IDT: Vectoring #PF uCR2=%#RGv\n", pMixedCtx->cr2)); 4637 4637 } … … 4668 4668 u32ErrCode = pVmxTransient->uIdtVectoringErrorCode; 4669 4669 } 4670 4671 /* If uExitVector is #PF, CR2 value will be updated from the VMCS if it's a guest #PF. See hmR0VmxExitXcptPF(). */ 4670 4672 hmR0VmxSetPendingEvent(pVCpu, VMX_ENTRY_INTR_INFO_FROM_EXIT_IDT_INFO(pVmxTransient->uIdtVectoringInfo), 4671 0 /* cbInstr */, u32ErrCode, GCPtrFaultAddress);4673 0 /* cbInstr */, u32ErrCode, pMixedCtx->cr2); 4672 4674 rc = VINF_SUCCESS; 4673 4675 Log(("IDT: Pending vectoring event %#RX64 Err=%#RX32\n", pVCpu->hm.s.Event.u64IntrInfo, pVCpu->hm.s.Event.u32ErrCode));
Note:
See TracChangeset
for help on using the changeset viewer.