VirtualBox

Changeset 8854 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
May 15, 2008 1:58:37 PM (17 years ago)
Author:
vboxsync
Message:

Minor updates

File:
1 edited

Legend:

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

    r8853 r8854  
    366366        if (!(pCtx->eflags.u32 & X86_EFL_IF))
    367367        {
    368             Log2(("Enable irq window exit!\n"));
    369             /** @todo use virtual interrupt method to inject a pending irq; dispatched as soon as guest.IF is set. */
    370             pVMCB->ctrl.u32InterceptCtrl1 |= SVM_CTRL1_INTERCEPT_VINTR;
    371             pVMCB->ctrl.IntCtrl.n.u1VIrqValid    = 1;
    372             pVMCB->ctrl.IntCtrl.n.u1IgnoreTPR    = 1; /* ignore the priority in the TPR; just deliver it */
    373             pVMCB->ctrl.IntCtrl.n.u8VIrqVector   = 0; /* don't care */
     368            if (!pVMCB->ctrl.IntCtrl.n.u1VIrqValid)
     369            {
     370                Log(("Enable irq window exit!\n"));
     371                /** @todo use virtual interrupt method to inject a pending irq; dispatched as soon as guest.IF is set. */
     372                pVMCB->ctrl.u32InterceptCtrl1 |= SVM_CTRL1_INTERCEPT_VINTR;
     373                pVMCB->ctrl.IntCtrl.n.u1VIrqValid    = 1;
     374                pVMCB->ctrl.IntCtrl.n.u1IgnoreTPR    = 1; /* ignore the priority in the TPR; just deliver it */
     375                pVMCB->ctrl.IntCtrl.n.u8VIrqVector   = 0; /* don't care */
     376            }
    374377        }
    375378        else
     
    766769    /* All done! Let's start VM execution. */
    767770    STAM_PROFILE_ADV_START(&pVM->hwaccm.s.StatInGC, x);
    768 
    769771    if (    pVM->hwaccm.s.svm.fForceTLBFlush
    770772        ||  pVM->hwaccm.s.svm.fAlwaysFlushTLB)
     
    11821184    case SVM_EXIT_VINTR:
    11831185        /* A virtual interrupt is about to be delivered, which means IF=1. */
     1186        Log(("SVM_EXIT_VINTR IF=%d\n", pCtx->eflags.Bits.u1IF));
    11841187        pVMCB->ctrl.IntCtrl.n.u1VIrqValid    = 0;
    11851188        pVMCB->ctrl.IntCtrl.n.u1IgnoreTPR    = 0;
     
    16501653    {
    16511654        /* Manually invalidate the page for the VM's TLB. */
     1655        Log(("SVMInvlpgA %VGv ASID=%d\n", addr, uASID));
    16521656        SVMInvlpgA(addr, uASID);
    16531657        return VINF_SUCCESS;
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