VirtualBox

Changeset 42450 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jul 30, 2012 3:14:23 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
79584
Message:

trpmGCExitTrap: Check for VMCPU_FF_SELM_SYNC_GDT, VMCPU_FF_SELM_SYNC_LDT and VMCPU_FF_SELM_SYNC_TSS if rc is VINF_SUCCESS and return with VINF_SELM_SYNC_GDT to ring-3. Seen when cr4.VME is changed and a trap is forwarded shortly afterwards. The FF remains set and causes TRPM to assert in the forwarding code (debug only).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMRC/TRPMRCHandlers.cpp

    r42186 r42450  
    189189             || VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_TIMER | VMCPU_FF_TO_R3 | VMCPU_FF_INTERRUPT_APIC | VMCPU_FF_INTERRUPT_PIC
    190190                                          | VMCPU_FF_REQUEST | VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL
    191                                           | VMCPU_FF_PDM_CRITSECT)
     191                                          | VMCPU_FF_PDM_CRITSECT
     192                                          | VMCPU_FF_SELM_SYNC_GDT | VMCPU_FF_SELM_SYNC_LDT | VMCPU_FF_SELM_SYNC_TSS
     193                                   )
    192194            )
    193195       )
     
    216218                 || VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_REQUEST))
    217219            rc = VINF_EM_PENDING_REQUEST;
     220        /* Pending GDT/LDT/TSS sync. */
     221        else if (VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_SELM_SYNC_GDT | VMCPU_FF_SELM_SYNC_LDT | VMCPU_FF_SELM_SYNC_TSS))
     222            rc = VINF_SELM_SYNC_GDT;
    218223        /* Pending interrupt: dispatch it. */
    219224        else if (    VMCPU_FF_ISPENDING(pVCpu, VMCPU_FF_INTERRUPT_APIC | VMCPU_FF_INTERRUPT_PIC)
Note: See TracChangeset for help on using the changeset viewer.

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