Changeset 46784 in vbox
- Timestamp:
- Jun 25, 2013 4:27:59 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r46779 r46784 631 631 /* Set up unconditional intercepts and conditions. */ 632 632 pVmcb->ctrl.u32InterceptCtrl1 = SVM_CTRL1_INTERCEPT_INTR /* External interrupt causes a VM-exit. */ 633 | SVM_CTRL1_INTERCEPT_VINTR /* Interrupt-window VM-exit. */634 633 | SVM_CTRL1_INTERCEPT_NMI /* Non-Maskable Interrupts causes a VM-exit. */ 635 634 | SVM_CTRL1_INTERCEPT_SMI /* System Management Interrupt cause a VM-exit. */ … … 1994 1993 1995 1994 SVMEVENT Event; 1996 Event.u = 0; 1997 Event.n.u1Valid = 1; 1995 Event.u = 0; 1996 Event.n.u1Valid = 1; 1997 Event.n.u8Vector = uVector; 1998 1998 1999 1999 /* Refer AMD spec. 15.20 "Event Injection" for the format. */ … … 2689 2689 pSvmTransient->fVectoringPF = false; /* Vectoring page-fault needs to be determined later. */ 2690 2690 hmR0SvmSaveGuestState(pVCpu, pMixedCtx); /* Save the guest state from the VMCB to the guest-CPU context. */ 2691 2692 Log4(("Vintr Intercept=%RTbool\n", !!(pVmcb->ctrl.u32InterceptCtrl1 & SVM_CTRL1_INTERCEPT_VINTR))); 2691 2693 2692 2694 if (RT_LIKELY(pSvmTransient->u64ExitCode != (uint64_t)SVM_EXIT_INVALID)) … … 3724 3726 3725 3727 rc = EMInterpretWrmsr(pVM, pVCpu, CPUMCTX2CORE(pCtx)); 3726 AssertMsg(rc == VINF_SUCCESS || rc == VERR_EM_INTERPRETER, ("hmR0SvmExitMsr: EMInterpretWrmsr failed rc=%Rrc\n", rc)); 3728 if (RT_LIKELY(rc == VINF_SUCCESS)) 3729 pCtx->rip += 2; /* Hardcoded opcode, AMD-V doesn't give us this information. */ 3730 else 3731 AssertMsg(rc == VERR_EM_INTERPRETER, ("hmR0SvmExitMsr: EMInterpretWrmsr failed rc=%Rrc\n", rc)); 3727 3732 3728 3733 if (pCtx->ecx == MSR_K6_EFER) … … 3734 3739 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitRdmsr); 3735 3740 rc = EMInterpretRdmsr(pVM, pVCpu, CPUMCTX2CORE(pCtx)); 3736 AssertMsg(rc == VINF_SUCCESS || rc == VERR_EM_INTERPRETER, ("hmR0SvmExitMsr: EMInterpretRdmsr failed rc=%Rrc\n", rc)); 3741 if (RT_LIKELY(rc == VINF_SUCCESS)) 3742 pCtx->rip += 2; /* Hardcoded opcode, AMD-V doesn't give us this information. */ 3743 else 3744 AssertMsg(rc == VERR_EM_INTERPRETER, ("hmR0SvmExitMsr: EMInterpretRdmsr failed rc=%Rrc\n", rc)); 3737 3745 } 3738 3746
Note:
See TracChangeset
for help on using the changeset viewer.