VirtualBox

Changeset 78952 in vbox for trunk


Ignore:
Timestamp:
Jun 4, 2019 7:43:08 AM (6 years ago)
Author:
vboxsync
Message:

VMM/HMVMXR0: Nested VMX: bugref:9180 APIC-access VM-exit handling fixes.

File:
1 edited

Legend:

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

    r78948 r78952  
    1262612626        case VMX_EXIT_EPT_MISCONFIG:            return hmR0VmxExitEptMisconfig(pVCpu, pVmxTransient);
    1262712627        case VMX_EXIT_EPT_VIOLATION:            return hmR0VmxExitEptViolation(pVCpu, pVmxTransient);
     12628        case VMX_EXIT_XCPT_OR_NMI:              return hmR0VmxExitXcptOrNmiNested(pVCpu, pVmxTransient);
    1262812629        case VMX_EXIT_IO_INSTR:                 return hmR0VmxExitIoInstrNested(pVCpu, pVmxTransient);
    1262912630        case VMX_EXIT_HLT:                      return hmR0VmxExitHltNested(pVCpu, pVmxTransient);
    12630         case VMX_EXIT_XCPT_OR_NMI:              return hmR0VmxExitXcptOrNmiNested(pVCpu, pVmxTransient);
    1263112631
    1263212632        /*
     
    1639316393    Assert(CPUMIsGuestVmxProcCtls2Set(pVCpu, &pVCpu->cpum.GstCtx, VMX_PROC_CTLS2_VIRT_APIC_ACCESS));
    1639416394    int rc = hmR0VmxReadExitQualVmcs(pVCpu, pVmxTransient);
     16395    rc    |= hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
     16396    rc    |= hmR0VmxReadIdtVectoringInfoVmcs(pVmxTransient);
     16397    rc    |= hmR0VmxReadIdtVectoringErrorCodeVmcs(pVmxTransient);
    1639516398    AssertRCReturn(rc, rc);
    1639616399
    16397     return IEMExecVmxVmexit(pVCpu, pVmxTransient->uExitReason, pVmxTransient->uExitQual);
     16400    VMXVEXITINFO ExitInfo;
     16401    RT_ZERO(ExitInfo);
     16402    ExitInfo.cbInstr = pVmxTransient->cbInstr;
     16403    ExitInfo.u64Qual = pVmxTransient->uExitQual;
     16404
     16405    VMXVEXITEVENTINFO ExitEventInfo;
     16406    RT_ZERO(ExitInfo);
     16407    ExitEventInfo.uIdtVectoringInfo    = pVmxTransient->uIdtVectoringInfo;
     16408    ExitEventInfo.uIdtVectoringErrCode = pVmxTransient->uIdtVectoringErrorCode;
     16409    return IEMExecVmxVmexitApicAccess(pVCpu, &ExitInfo, &ExitEventInfo);
    1639816410}
    1639916411
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