VirtualBox

Changeset 98521 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Feb 10, 2023 9:12:02 AM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
155790
Message:

VMM/IEM: Nested VMX: bugref:10318 Fixed incorrect assumption of secondary VM-exec controls when 'activate secondary controls' isn't set with non-zero secondary value present.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp

    r98360 r98521  
    63416341static int iemVmxVmentryCheckCtls(PVMCPUCC pVCpu, const char *pszInstr) RT_NOEXCEPT
    63426342{
    6343     PCVMXVVMCS const pVmcs = &pVCpu->cpum.GstCtx.hwvirt.vmx.Vmcs;
     6343    PVMXVVMCS const pVmcs = &pVCpu->cpum.GstCtx.hwvirt.vmx.Vmcs;
    63446344    const char * const pszFailure = "VMFail";
    63456345    bool const fVmxTrueMsrs       = RT_BOOL(pVCpu->cpum.GstCtx.hwvirt.vmx.Msrs.u64Basic & VMX_BF_BASIC_TRUE_CTLS_MASK);
     
    63956395        }
    63966396        else
    6397             Assert(!pVmcs->u32ProcCtls2);
     6397        {
     6398            /*
     6399             * If the "activate secondary controls" is clear, then the secondary processor-based VM-execution controls
     6400             * is treated as 0. We must not fail/assert here. Microsoft Hyper-V relies on this behavior.
     6401             *
     6402             * See Intel spec. 26.2.1.1 "VM-Execution Control Fields".
     6403             */
     6404            pVmcs->u32ProcCtls2 = 0;
     6405        }
    63986406
    63996407        /* CR3-target count. */
Note: See TracChangeset for help on using the changeset viewer.

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