Changeset 46808 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Jun 26, 2013 2:58:36 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r46804 r46808 32 32 33 33 #ifdef DEBUG_ramshankar 34 # define HM VMX_SYNC_FULL_GUEST_STATE34 # define HMSVM_SYNC_FULL_GUEST_STATE 35 35 # define HMSVM_ALWAYS_TRAP_ALL_XCPTS 36 36 # define HMSVM_ALWAYS_TRAP_PF … … 2561 2561 pVmcb->ctrl.NestedPaging.n.u1NestedPaging = pVM->hm.s.fNestedPaging; 2562 2562 2563 #ifdef HM VMX_SYNC_FULL_GUEST_STATE2563 #ifdef HMSVM_SYNC_FULL_GUEST_STATE 2564 2564 pVCpu->hm.s.fContextUseFlags |= HM_CHANGED_ALL_GUEST; 2565 2565 #endif … … 2716 2716 else if ((uint8_t)(pSvmTransient->u8GuestTpr >> 4) != pVmcb->ctrl.IntCtrl.n.u8VTPR) 2717 2717 { 2718 int rc = PDMApicSetTPR(pVCpu, (pVmcb->ctrl.IntCtrl.n.u8VTPR << 4));2718 int rc = PDMApicSetTPR(pVCpu, pVmcb->ctrl.IntCtrl.n.u8VTPR << 4); 2719 2719 AssertRC(rc); 2720 pVCpu->hm.s.fContextUseFlags |= HM_CHANGED_SVM_GUEST_APIC_STATE; 2720 2721 } 2721 2722 } … … 3759 3760 AssertMsg(rc == VERR_EM_INTERPRETER, ("hmR0SvmExitMsr: EMInterpretWrmsr failed rc=%Rrc\n", rc)); 3760 3761 3761 if (pCtx->ecx == MSR_K6_EFER) 3762 /* If this is an X2APIC WRMSR access, update the APIC state as well. */ 3763 if ( pCtx->ecx >= MSR_IA32_X2APIC_START 3764 && pCtx->ecx <= MSR_IA32_X2APIC_END) 3765 { 3766 /* We've already saved the APIC related guest-state (TPR) in hmR0SvmPostRunGuest(). When full APIC register 3767 * virtualization is implemented we'll have to make sure APIC state is saved from the VMCB before 3768 EMInterpretWrmsr() changes it. */ 3769 pVCpu->hm.s.fContextUseFlags |= HM_CHANGED_SVM_GUEST_APIC_STATE; 3770 } 3771 else if (pCtx->ecx == MSR_K6_EFER) 3762 3772 pVCpu->hm.s.fContextUseFlags |= HM_CHANGED_SVM_GUEST_EFER_MSR; 3763 3773 else if (pCtx->ecx == MSR_IA32_TSC) … … 4261 4271 TRPMResetTrap(pVCpu); 4262 4272 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitShadowPF); 4273 pVCpu->hm.s.fContextUseFlags |= HM_CHANGED_SVM_GUEST_APIC_STATE; 4263 4274 return rc; 4264 4275 }
Note:
See TracChangeset
for help on using the changeset viewer.