VirtualBox

Changeset 72985 in vbox


Ignore:
Timestamp:
Jul 8, 2018 4:34:43 PM (6 years ago)
Author:
vboxsync
Message:

VMM/HMVMXR0: bugref:9193 Stop passing pCtx around and use pVCpu->cpum.GstCtx instead where possible. [build fix]

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r72984 r72985  
    70347034 * @param   pVCpu           The cross context virtual CPU structure.
    70357035 * @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.
    70397037 */
    70407038static DECLCALLBACK(int) hmR0VmxCallRing3Callback(PVMCPU pVCpu, VMMCALLRING3 enmOperation, void *pvUser)
    70417039{
     7040    RT_NOREF(pvUser);
    70427041    if (enmOperation == VMMCALLRING3_VM_R0_ASSERTION)
    70437042    {
     
    1190211901    VBOXSTRICTRC rcStrict;
    1190311902    PVM      pVM  = pVCpu->CTX_SUFF(pVM);
    11904     PCPUMCTX pCtx = &pVCpu->cpum.GstCtx;
    1190511903    RTGCUINTPTR const uExitQualification = pVmxTransient->uExitQualification;
    1190611904    uint32_t const uAccessType           = VMX_EXIT_QUAL_CRX_ACCESS(uExitQualification);
     
    1192411922                                     HM_CHANGED_GUEST_RIP | HM_CHANGED_GUEST_RFLAGS | HM_CHANGED_GUEST_CR0);
    1192511923                    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitCR0Write);
    11926                     Log4(("CRX CR0 write rcStrict=%Rrc CR0=%#RX64\n", VBOXSTRICTRC_VAL(rcStrict), pCtx->cr0));
     11924                    Log4(("CRX CR0 write rcStrict=%Rrc CR0=%#RX64\n", VBOXSTRICTRC_VAL(rcStrict), pVCpu->cpum.GstCtx.cr0));
    1192711925                    break;
    1192811926                }
     
    1193711935                case 3:
    1193811936                {
    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);
    1194011940                    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitCR3Write);
    1194111941                    ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged,
    1194211942                                     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), pCtx->cr3));
     11943                    Log4(("CRX CR3 write rcStrict=%Rrc CR3=%#RX64\n", VBOXSTRICTRC_VAL(rcStrict), pVCpu->cpum.GstCtx.cr3));
    1194411944                    break;
    1194511945                }
     
    1195011950                    ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged,
    1195111951                                     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));
    1195411954                    break;
    1195511955                }
     
    1197311973        {
    1197411974            Assert(   !pVM->hm.s.fNestedPaging
    11975                    || !CPUMIsGuestPagingEnabledEx(pCtx)
     11975                   || !CPUMIsGuestPagingEnabledEx(&pVCpu->cpum.GstCtx)
    1197611976                   || pVCpu->hm.s.fUsingDebugLoop
    1197711977                   || VMX_EXIT_QUAL_CRX_REGISTER(uExitQualification) != 3);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette