VirtualBox

Ignore:
Timestamp:
Nov 15, 2018 5:06:55 PM (6 years ago)
Author:
vboxsync
Message:

VMM: Nested VMX: bugref: 9180 Use PGM physical page handler for the APIC-access page.

File:
1 edited

Legend:

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

    r75387 r75493  
    12781278        && CPUMIsGuestVmxProcCtls2Set(pVCpu, &pVCpu->cpum.s.Guest, VMX_PROC_CTLS2_VIRT_X2APIC_MODE))
    12791279    {
    1280         /** @todo NSTVMX: perhaps IEMExecVmxVirtApicAccessMsr should be moved to
    1281          *        HMVMXAll.cpp? */
    12821280        VBOXSTRICTRC rcStrict = IEMExecVmxVirtApicAccessMsr(pVCpu, idMsr, puValue, false /* fWrite */);
    1283         Assert(rcStrict == VINF_SUCCESS || rcStrict == VERR_OUT_OF_RANGE || rcStrict == VINF_VMX_INTERCEPT_NOT_ACTIVE);
    1284         if (rcStrict != VINF_VMX_INTERCEPT_NOT_ACTIVE)
    1285         {
    1286             if (rcStrict == VERR_OUT_OF_RANGE)
    1287                 return VERR_CPUM_RAISE_GP_0;
    1288             Assert(rcStrict == VINF_SUCCESS);
     1281        if (rcStrict == VINF_VMX_MODIFIES_BEHAVIOR)
    12891282            return VINF_SUCCESS;
    1290         }
     1283        if (rcStrict == VERR_OUT_OF_RANGE)
     1284            return VERR_CPUM_RAISE_GP_0;
     1285        Assert(rcStrict == VINF_VMX_INTERCEPT_NOT_ACTIVE);
    12911286    }
    12921287#endif
     
    13031298        && CPUMIsGuestVmxProcCtls2Set(pVCpu, &pVCpu->cpum.s.Guest, VMX_PROC_CTLS2_VIRT_X2APIC_MODE))
    13041299    {
    1305         /** @todo NSTVMX: perhaps IEMExecVmxVirtApicAccessMsr should be moved to
    1306          *        HMVMXAll.cpp? */
    13071300        VBOXSTRICTRC rcStrict = IEMExecVmxVirtApicAccessMsr(pVCpu, idMsr, &uValue, true /* fWrite */);
    1308         Assert(rcStrict == VINF_SUCCESS || rcStrict == VERR_OUT_OF_RANGE || rcStrict == VINF_VMX_INTERCEPT_NOT_ACTIVE);
    1309         if (rcStrict != VINF_VMX_INTERCEPT_NOT_ACTIVE)
    1310         {
    1311             if (rcStrict == VERR_OUT_OF_RANGE)
    1312                 return VERR_CPUM_RAISE_GP_0;
    1313             Assert(rcStrict == VINF_SUCCESS);
     1301        if (rcStrict == VINF_VMX_MODIFIES_BEHAVIOR)
    13141302            return VINF_SUCCESS;
    1315         }
     1303        if (rcStrict == VERR_OUT_OF_RANGE)
     1304            return VERR_CPUM_RAISE_GP_0;
     1305        Assert(rcStrict == VINF_VMX_INTERCEPT_NOT_ACTIVE);
    13161306    }
    13171307#endif
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