VirtualBox

Changeset 32458 in vbox for trunk/src/VBox/VMM/VMMGC


Ignore:
Timestamp:
Sep 13, 2010 4:30:10 PM (14 years ago)
Author:
vboxsync
Message:

VMM: Return to ring-3 when DMA work is pending.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMGC/TRPMGCHandlers.cpp

    r31636 r32458  
    186186     */
    187187    if (    rc == VINF_SUCCESS
    188         &&  (   VM_FF_ISPENDING(pVM, VM_FF_TM_VIRTUAL_SYNC | VM_FF_REQUEST | VM_FF_PGM_NO_MEMORY)
     188        &&  (   VM_FF_ISPENDING(pVM, VM_FF_TM_VIRTUAL_SYNC | VM_FF_REQUEST | VM_FF_PGM_NO_MEMORY | VM_FF_PDM_DMA)
    189189             || VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_TIMER | VMCPU_FF_TO_R3 | VMCPU_FF_INTERRUPT_APIC | VMCPU_FF_INTERRUPT_PIC | VMCPU_FF_REQUEST | VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL)
    190190            )
     
    205205        /* The Virtual Sync clock has stopped. */
    206206        else if (VM_FF_ISPENDING(pVM, VM_FF_TM_VIRTUAL_SYNC))
     207            rc = VINF_EM_RAW_TO_R3;
     208        /* DMA work pending? */
     209        else if (VM_FF_ISPENDING(pVM, VM_FF_PDM_DMA))
    207210            rc = VINF_EM_RAW_TO_R3;
    208211        /* Pending interrupt: dispatch it. */
     
    243246#endif
    244247        }
     248        /** @todo move up before SyncCR3 */
    245249        /* Pending request packets might contain actions that need immediate attention, such as pending hardware interrupts. */
    246250        else if (   VM_FF_ISPENDING(pVM, VM_FF_REQUEST)
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