VirtualBox

Changeset 97020 in vbox


Ignore:
Timestamp:
Oct 6, 2022 3:27:21 AM (2 years ago)
Author:
vboxsync
Message:

VMM/IEM: Nested VMX: bugref:10092 This workaround/hack is no longer required with the fix from r153881/r153906 and consequent removal of PGM_WITH_NESTED_APIC_ACCESS_PAGE.

File:
1 edited

Legend:

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

    r97019 r97020  
    99359935
    99369936            /*
    9937              * WARNING: HACK AHEAD!
    9938              * The below is a the old behavior which composes an incomplete APIC-access VM-exit.
    9939              * This will result in the inner hypervisor emulating the access since it lacks info
    9940              * for a linear read/write accesses. Unfortunately, this is required till the
    9941              * virtual VMX APIC-access page mapping using PGM_WITH_NESTED_APIC_ACCESS_PAGE is
    9942              * fixed properly.
    9943              */
    9944             if (HmExitAux.Vmx.uReason == VMX_EXIT_EPT_MISCONFIG)
    9945             {
    9946                 LogFlowFunc(("Raising APIC-access VM-exit as phys access from #PF handler at offset %#x\n", offAccess));
    9947                 VMXVEXITINFO const ExitInfo = VMXVEXITINFO_INIT_WITH_QUALIFIER(VMX_EXIT_APIC_ACCESS,
    9948                                                                                  RT_BF_MAKE(VMX_BF_EXIT_QUAL_APIC_ACCESS_OFFSET,
    9949                                                                                             offAccess)
    9950                                                                                | RT_BF_MAKE(VMX_BF_EXIT_QUAL_APIC_ACCESS_TYPE,
    9951                                                                                             VMXAPICACCESS_PHYSICAL_INSTR));
    9952                 VMXVEXITEVENTINFO const ExitEventInfo = VMXVEXITEVENTINFO_INIT_ONLY_IDT(HmExitAux.Vmx.uIdtVectoringInfo,
    9953                                                                                         HmExitAux.Vmx.uIdtVectoringErrCode);
    9954                 VBOXSTRICTRC const      rcStrict      = iemVmxVmexitApicAccessWithInfo(pVCpu, &ExitInfo, &ExitEventInfo);
    9955                 return iemExecStatusCodeFiddling(pVCpu, rcStrict);
    9956             }
    9957 
    9958             /*
    99599937             * Verify the VM-exit reason must be an EPT violation.
    99609938             * Other accesses should go through the other handler (iemVmxApicAccessPageHandler).
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