VirtualBox

Changeset 67027 in vbox for trunk/src/VBox/VMM/VMMR0


Ignore:
Timestamp:
May 23, 2017 7:57:09 AM (8 years ago)
Author:
vboxsync
Message:

VMM/HMSVMR0: Todo and fix injecting events instead of re-executing the instruction in certain cases.

File:
1 edited

Legend:

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

    r66993 r67027  
    36503650                /*   SVM_EXIT_EXCEPTION_1: */          /* X86_XCPT_DB - Handled above. */
    36513651                case SVM_EXIT_EXCEPTION_2:             /* X86_XCPT_NMI */
    3652                 /*   SVM_EXIT_EXCEPTION_3: */         /* X86_XCPT_BP - Handled above. */
     3652                /*   SVM_EXIT_EXCEPTION_3: */          /* X86_XCPT_BP - Handled above. */
    36533653                case SVM_EXIT_EXCEPTION_4:             /* X86_XCPT_OF */
    36543654                case SVM_EXIT_EXCEPTION_5:             /* X86_XCPT_BR */
     
    36723672                case SVM_EXIT_EXCEPTION_29: case SVM_EXIT_EXCEPTION_30: case SVM_EXIT_EXCEPTION_31:
    36733673                {
     3674                    /** @todo r=ramshankar; We should be doing
     3675                     *        HMSVM_CHECK_EXIT_DUE_TO_EVENT_DELIVERY here! */
     3676
    36743677                    PSVMVMCB pVmcb   = (PSVMVMCB)pVCpu->hm.s.svm.pvVmcb;
    36753678                    SVMEVENT Event;
     
    52195222           otherwise injecting the original pending event would most likely cause the same MMIO #NPF. */
    52205223        if (RT_UNLIKELY(pVCpu->hm.s.Event.fPending))
    5221         {
    5222             /** @todo this should return VINF_EM_RAW_INJECT_TRPM_EVENT. */
    5223             return VERR_EM_INTERPRETER;
    5224         }
     5224            return VINF_EM_RAW_INJECT_TRPM_EVENT;
    52255225
    52265226        VBOXSTRICTRC rc2 = PGMR0Trap0eHandlerNPMisconfig(pVM, pVCpu, enmNestedPagingMode, CPUMCTX2CORE(pCtx), GCPhysFaultAddr,
     
    56465646    {
    56475647        STAM_COUNTER_INC(&pVCpu->hm.s.StatInjectPendingInterpret);
    5648         /** @todo this should return VINF_EM_RAW_INJECT_TRPM_EVENT. */
    5649         return VERR_EM_INTERPRETER;
     5648        return VINF_EM_RAW_INJECT_TRPM_EVENT;
    56505649    }
    56515650
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