VirtualBox

Changeset 19461 in vbox


Ignore:
Timestamp:
May 6, 2009 8:14:16 PM (16 years ago)
Author:
vboxsync
Message:

VMEm.cpp: Check for VMCPUSTATE_STARTED_EXEC_REM before calling REMR3NotifyFF.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMEmt.cpp

    r19435 r19461  
    732732        AssertRC(rc);
    733733    }
    734     else if (   (fFlags & VMNOTIFYFF_FLAGS_POKE)
    735              && pUVCpu->pVCpu
    736              && pUVCpu->pVCpu->enmState == VMCPUSTATE_STARTED_EXEC)
    737     {
    738         int rc = SUPCallVMMR0Ex(pUVCpu->pVM->pVMR0, pUVCpu->idCpu, VMMR0_DO_GVMM_SCHED_POKE, 0, NULL);
    739         AssertRC(rc);
    740     }
    741     else if (!(fFlags & VMNOTIFYFF_FLAGS_DONE_REM)) /** @todo use VMCPUSTATE_RUN_EXEC_REM */
    742         REMR3NotifyFF(pUVCpu->pVM);
     734    else if (   (   (fFlags & VMNOTIFYFF_FLAGS_POKE)
     735                 || !(fFlags & VMNOTIFYFF_FLAGS_DONE_REM))
     736             && pUVCpu->pVCpu)
     737    {
     738        VMCPUSTATE enmState = VMCPU_GET_STATE(pUVCpu->pVCpu);
     739        if (enmState == VMCPUSTATE_STARTED_EXEC)
     740        {
     741            if (fFlags & VMNOTIFYFF_FLAGS_POKE)
     742            {
     743                int rc = SUPCallVMMR0Ex(pUVCpu->pVM->pVMR0, pUVCpu->idCpu, VMMR0_DO_GVMM_SCHED_POKE, 0, NULL);
     744                AssertRC(rc);
     745            }
     746        }
     747        else if (enmState == VMCPUSTATE_STARTED_EXEC_REM)
     748        {
     749            if (!(fFlags & VMNOTIFYFF_FLAGS_DONE_REM))
     750                REMR3NotifyFF(pUVCpu->pVM);
     751        }
     752    }
    743753}
    744754
     
    875885        AssertRC(rc);
    876886    }
    877     else if (!(fFlags & VMNOTIFYFF_FLAGS_DONE_REM))
     887    else if (   !(fFlags & VMNOTIFYFF_FLAGS_DONE_REM)
     888             && pUVCpu->pVCpu
     889             && pUVCpu->pVCpu->enmState == VMCPUSTATE_STARTED_EXEC_REM)
    878890        REMR3NotifyFF(pUVCpu->pVM);
    879891}
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