VirtualBox

Ignore:
Timestamp:
May 6, 2013 3:48:04 PM (12 years ago)
Author:
vboxsync
Message:

VMM/HMVMXR0: State-save ordering enforcement assertion, comment and don't save autoload/store MSRs for getting EFER as it's always up to date.

File:
1 edited

Legend:

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

    r45915 r45918  
    50435043/**
    50445044 * Saves the auto load/store'd guest MSRs from the current VMCS into the
    5045  * guest-CPU context. Currently these are LSTAR, STAR, SFMASK and TSC_AUX.
     5045 * guest-CPU context. Currently these are LSTAR, STAR, SFMASK, KERNEL-GS BASE
     5046 * and TSC_AUX.
    50465047 *
    50475048 * @returns VBox status code.
     
    51075108    AssertRCReturn(rc, rc);
    51085109
     5110    /* Guest CR2 - updated always during the world-switch or in #PF. */
    51095111    /* Guest CR3. Only changes with Nested Paging. This must be done -after- saving CR0 and CR4 from the guest! */
    51105112    if (!(pVCpu->hm.s.vmx.fUpdatedGuestState & HMVMX_UPDATED_GUEST_CR3))
    51115113    {
     5114        Assert(pVCpu->hm.s.vmx.fUpdatedGuestState & HMVMX_UPDATED_GUEST_CR0);
     5115        Assert(pVCpu->hm.s.vmx.fUpdatedGuestState & HMVMX_UPDATED_GUEST_CR4);
     5116
    51125117        PVM pVM = pVCpu->CTX_SUFF(pVM);
    51135118        if (   pVM->hm.s.fNestedPaging
     
    51235128            }
    51245129
    5125             /* We require EFER to check PAE mode. */
    5126             rc = hmR0VmxSaveGuestAutoLoadStoreMsrs(pVCpu, pMixedCtx);
    5127             AssertRCReturn(rc, rc);
    5128 
    51295130            /* If the guest is in PAE mode, sync back the PDPE's into the guest state. */
    5130             if (CPUMIsGuestInPAEModeEx(pMixedCtx))  /* Reads CR0, CR4 and EFER MSR. */
     5131            if (CPUMIsGuestInPAEModeEx(pMixedCtx))  /* Reads CR0, CR4 and EFER MSR (EFER is always up-to-date). */
    51315132            {
    51325133                rc = VMXReadVmcs64(VMX_VMCS64_GUEST_PDPTE0_FULL, &pVCpu->hm.s.aPdpes[0].u);        AssertRCReturn(rc, rc);
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