VirtualBox

Changeset 79402 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jun 28, 2019 7:49:36 AM (6 years ago)
Author:
vboxsync
Message:

VMM/HMVMXR0: Nested VMX: bugref:9180 Refer to the host CPU capability while choosing to map the APIC-access page (since we don't allow physical APIC access to the guest or the nested-guest).
Look at the VMCSINFO control directly when looking at VMX_PROC_CTLS_USE_MSR_BITMAPS in hmR0VmxExitRdmsr since nested-guest has its own handler.
Commented out a couple of functions as a result.

File:
1 edited

Legend:

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

    r79401 r79402  
    10041004
    10051005
     1006#if 0
    10061007/**
    10071008 * Checks whether one of the given Processor-based VM-execution controls are set.
     
    10501051
    10511052
    1052 #if 0
    10531053/**
    10541054 * Checks whether one of the given VM-entry controls are set.
     
    1140011400    PVM pVM = pVCpu->CTX_SUFF(pVM);
    1140111401    if (   !pVCpu->hm.s.vmx.u64GstMsrApicBase
    11402         && hmR0VmxIsProcCtls2Set(pVCpu, pVmxTransient, VMX_PROC_CTLS2_VIRT_APIC_ACCESS)
     11402        && (pVM->hm.s.vmx.Msrs.ProcCtls2.n.allowed1 & VMX_PROC_CTLS2_VIRT_APIC_ACCESS)
    1140311403        && PDMHasApic(pVM))
    1140411404    {
     
    1388113881         * etc.) occurred while delivering the NMI, we need to clear the block-by-NMI field in the guest
    1388213882         * interruptibility-state before re-delivering the NMI after handling the VM-exit. Otherwise the
    13883          * subsequent VM-entry would fail.
     13883         * subsequent VM-entry would fail, see @bugref{7445}.
    1388413884         *
    13885          * See Intel spec. 30.7.1.2 "Resuming Guest Software after Handling an Exception". See @bugref{7445}.
     13885         * See Intel spec. 30.7.1.2 "Resuming Guest Software after Handling an Exception".
    1388613886         */
    1388713887        if (   uIdtVectorType == VMX_IDT_VECTORING_INFO_TYPE_NMI
     
    1478614786
    1478714787#ifdef VBOX_STRICT
    14788     if (hmR0VmxIsProcCtlsSet(pVCpu, pVmxTransient, VMX_PROC_CTLS_USE_MSR_BITMAPS))
     14788    Assert(!pVmxTransient->fIsNestedGuest);
     14789    if (pVmcsInfo->u32ProcCtls & VMX_PROC_CTLS_USE_MSR_BITMAPS)
    1478914790    {
    1479014791        if (   hmR0VmxIsAutoLoadGuestMsr(pVmcsInfo, idMsr)
     
    1488814889        }
    1488914890
    14890         /* Update MSRs that are part of the VMCS and auto-load/store area when MSR-bitmaps are not supported. */
    14891         if (!hmR0VmxIsProcCtlsSet(pVCpu, pVmxTransient, VMX_PROC_CTLS_USE_MSR_BITMAPS))
     14891        /* Update MSRs that are part of the VMCS and auto-load/store area when MSR-bitmaps are not used. */
     14892        if (!(pVmcsInfo->u32ProcCtls & VMX_PROC_CTLS_USE_MSR_BITMAPS))
    1489214893        {
    1489314894            switch (idMsr)
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