VirtualBox

儲存庫 vbox 的更動 66981


忽略:
時間撮記:
2017-5-19 下午01:11:27 (8 年 以前)
作者:
vboxsync
訊息:

VMM/HMSVMR0: Fixes to hmR0SvmCheckExitDueToEventDelivery.

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp

    r66980 r66981  
    40724072             *   - a hardware exception or external interrupt, we re-inject it.
    40734073             */
     4074            fRaiseInfo = IEMXCPTRAISEINFO_NONE;
    40744075            if (pVmcb->ctrl.ExitIntInfo.n.u3Type == SVM_EVENT_SOFTWARE_INT)
    4075             {
    4076                 enmRaise   = IEMXCPTRAISE_REEXEC_INSTR;
    4077                 fRaiseInfo = IEMXCPTRAISEINFO_NONE;
    4078             }
    4079             else if (pVmcb->ctrl.ExitIntInfo.n.u3Type == SVM_EVENT_NMI)
    4080             {
    4081                 enmRaise   = IEMXCPTRAISE_PREV_EVENT;
    4082                 fRaiseInfo = IEMXCPTRAISEINFO_NMI_XCPT;
    4083             }
     4076                enmRaise = IEMXCPTRAISE_REEXEC_INSTR;
    40844077            else
    4085             {
    4086                 enmRaise   = IEMXCPTRAISE_PREV_EVENT;
    4087                 fRaiseInfo = IEMXCPTRAISEINFO_NONE;
    4088             }
     4078                enmRaise = IEMXCPTRAISE_PREV_EVENT;
    40894079        }
    40904080
     
    40994089                    RTGCUINTPTR GCPtrFaultAddress = 0;
    41004090
    4101                     /* If we are re-injecting the NMI, clear NMI blocking. */
    4102                     if (fRaiseInfo & IEMXCPTRAISEINFO_NMI_XCPT)
     4091                    /* If we are re-injecting an NMI, clear NMI blocking. */
     4092                    if (pVmcb->ctrl.ExitIntInfo.n.u3Type == SVM_EVENT_NMI)
    41034093                        VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_BLOCK_NMIS);
    41044094
     
    41064096                    if (fRaiseInfo & (IEMXCPTRAISEINFO_EXT_INT_PF | IEMXCPTRAISEINFO_NMI_PF))
    41074097                        pSvmTransient->fVectoringPF = true;
    4108                     else if (   uIdtVector == X86_XCPT_PF
    4109                              && pVmcb->ctrl.ExitIntInfo.n.u3Type == SVM_EVENT_EXCEPTION)
     4098                    else if (   pVmcb->ctrl.ExitIntInfo.n.u3Type == SVM_EVENT_EXCEPTION
     4099                             && uIdtVector == X86_XCPT_PF)
    41104100                    {
    41114101                        /*
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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