VirtualBox

Ignore:
Timestamp:
Jun 7, 2016 12:00:19 PM (9 years ago)
Author:
vboxsync
Message:

SVM: Handle task switch resulting from event delivery (bugref:8411).

File:
1 edited

Legend:

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

    r61428 r61534  
    51565156    HMSVM_VALIDATE_EXIT_HANDLER_PARAMS();
    51575157
     5158    HMSVM_CHECK_EXIT_DUE_TO_EVENT_DELIVERY();
     5159
    51585160#ifndef HMSVM_ALWAYS_TRAP_TASK_SWITCH
    51595161    Assert(!pVCpu->CTX_SUFF(pVM)->hm.s.fNestedPaging);
    51605162#endif
    51615163
    5162     /* Check if this task-switch occurred while delivery an event through the guest IDT. */
     5164    /* Check if this task-switch occurred while delivering an event through the guest IDT. */
    51635165    PSVMVMCB pVmcb = (PSVMVMCB)pVCpu->hm.s.svm.pvVmcb;
    51645166    if (   !(pVmcb->ctrl.u64ExitInfo2 & (SVM_EXIT2_TASK_SWITCH_IRET | SVM_EXIT2_TASK_SWITCH_JMP))
    5165         && pVCpu->hm.s.Event.fPending)  /** @todo fPending cannot be 'true', see hmR0SvmInjectPendingEvent(). See @bugref{7362}.*/
     5167        && pVCpu->hm.s.Event.fPending)  /**  Can happen with exceptions/NMI. See @bugref{8411}.*/
    51665168    {
    51675169        /*
    5168          * AMD-V does not provide us with the original exception but we have it in u64IntInfo since we
    5169          * injected the event during VM-entry.
     5170         * AMD-V provides us with the exception which caused the TS; we collect
     5171         * the information in the call to hmR0SvmCheckExitDueToEventDelivery.
    51705172         */
    51715173        Log4(("hmR0SvmExitTaskSwitch: TS occurred during event delivery.\n"));
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