VirtualBox

Changeset 8854

Show
Ignore:
Timestamp:
05/15/08 15:58:37 (4 months ago)
Author:
vboxsync
Message:

Minor updates

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 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; 

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy