Changeset 72985 in vbox
- Timestamp:
- Jul 8, 2018 4:34:43 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r72984 r72985 7034 7034 * @param pVCpu The cross context virtual CPU structure. 7035 7035 * @param enmOperation The operation causing the ring-3 longjump. 7036 * @param pvUser Opaque pointer to the guest-CPU context. The data 7037 * may be out-of-sync. Make sure to update the required 7038 * fields before using them. 7036 * @param pvUser User argument, currently unused, NULL. 7039 7037 */ 7040 7038 static DECLCALLBACK(int) hmR0VmxCallRing3Callback(PVMCPU pVCpu, VMMCALLRING3 enmOperation, void *pvUser) 7041 7039 { 7040 RT_NOREF(pvUser); 7042 7041 if (enmOperation == VMMCALLRING3_VM_R0_ASSERTION) 7043 7042 { … … 11902 11901 VBOXSTRICTRC rcStrict; 11903 11902 PVM pVM = pVCpu->CTX_SUFF(pVM); 11904 PCPUMCTX pCtx = &pVCpu->cpum.GstCtx;11905 11903 RTGCUINTPTR const uExitQualification = pVmxTransient->uExitQualification; 11906 11904 uint32_t const uAccessType = VMX_EXIT_QUAL_CRX_ACCESS(uExitQualification); … … 11924 11922 HM_CHANGED_GUEST_RIP | HM_CHANGED_GUEST_RFLAGS | HM_CHANGED_GUEST_CR0); 11925 11923 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitCR0Write); 11926 Log4(("CRX CR0 write rcStrict=%Rrc CR0=%#RX64\n", VBOXSTRICTRC_VAL(rcStrict), p Ctx->cr0));11924 Log4(("CRX CR0 write rcStrict=%Rrc CR0=%#RX64\n", VBOXSTRICTRC_VAL(rcStrict), pVCpu->cpum.GstCtx.cr0)); 11927 11925 break; 11928 11926 } … … 11937 11935 case 3: 11938 11936 { 11939 Assert(!pVM->hm.s.fNestedPaging || !CPUMIsGuestPagingEnabledEx(pCtx) || pVCpu->hm.s.fUsingDebugLoop); 11937 Assert( !pVM->hm.s.fNestedPaging 11938 || !CPUMIsGuestPagingEnabledEx(&pVCpu->cpum.GstCtx) 11939 || pVCpu->hm.s.fUsingDebugLoop); 11940 11940 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitCR3Write); 11941 11941 ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, 11942 11942 HM_CHANGED_GUEST_RIP | HM_CHANGED_GUEST_RFLAGS | HM_CHANGED_GUEST_CR3); 11943 Log4(("CRX CR3 write rcStrict=%Rrc CR3=%#RX64\n", VBOXSTRICTRC_VAL(rcStrict), p Ctx->cr3));11943 Log4(("CRX CR3 write rcStrict=%Rrc CR3=%#RX64\n", VBOXSTRICTRC_VAL(rcStrict), pVCpu->cpum.GstCtx.cr3)); 11944 11944 break; 11945 11945 } … … 11950 11950 ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, 11951 11951 HM_CHANGED_GUEST_RIP | HM_CHANGED_GUEST_RFLAGS | HM_CHANGED_GUEST_CR4); 11952 Log4(("CRX CR4 write rc=%Rrc CR4=%#RX64 fLoadSaveGuestXcr0=%u\n", VBOXSTRICTRC_VAL(rcStrict), pCtx->cr4,11953 pVCpu-> hm.s.fLoadSaveGuestXcr0));11952 Log4(("CRX CR4 write rc=%Rrc CR4=%#RX64 fLoadSaveGuestXcr0=%u\n", VBOXSTRICTRC_VAL(rcStrict), 11953 pVCpu->cpum.GstCtx.cr4, pVCpu->hm.s.fLoadSaveGuestXcr0)); 11954 11954 break; 11955 11955 } … … 11973 11973 { 11974 11974 Assert( !pVM->hm.s.fNestedPaging 11975 || !CPUMIsGuestPagingEnabledEx( pCtx)11975 || !CPUMIsGuestPagingEnabledEx(&pVCpu->cpum.GstCtx) 11976 11976 || pVCpu->hm.s.fUsingDebugLoop 11977 11977 || VMX_EXIT_QUAL_CRX_REGISTER(uExitQualification) != 3);
Note:
See TracChangeset
for help on using the changeset viewer.