VirtualBox

Changeset 71383 in vbox


Ignore:
Timestamp:
Mar 20, 2018 8:47:39 AM (7 years ago)
Author:
vboxsync
Message:

VMM/HMSVMR0: Nested hw.virt: Handle NMI intercept #VMEXIT for a nested-guest while injecting an NMI into the guest.

File:
1 edited

Legend:

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

    r71344 r71383  
    34583458            else
    34593459            {
     3460                if (CPUMIsGuestSvmCtrlInterceptSet(pVCpu, pCtx, SVM_CTRL_INTERCEPT_NMI))
     3461                {
     3462                    Log4(("Intercepting NMI -> #VMEXIT\n"));
     3463                    return IEMExecSvmVmexit(pVCpu, SVM_EXIT_NMI, 0, 0);
     3464                }
     3465
    34603466                Log4(("Pending NMI\n"));
    3461 
    34623467                SVMEVENT Event;
    34633468                Event.u = 0;
     
    34653470                Event.n.u8Vector = X86_XCPT_NMI;
    34663471                Event.n.u3Type   = SVM_EVENT_NMI;
    3467 
    34683472                hmR0SvmSetPendingEvent(pVCpu, &Event, 0 /* GCPtrFaultAddress */);
    34693473                hmR0SvmSetIretIntercept(pVmcbNstGst);
     
    35033507                {
    35043508                    Log4(("Injecting external interrupt u8Interrupt=%#x\n", u8Interrupt));
    3505 
    35063509                    SVMEVENT Event;
    35073510                    Event.u = 0;
     
    35093512                    Event.n.u8Vector = u8Interrupt;
    35103513                    Event.n.u3Type   = SVM_EVENT_EXTERNAL_IRQ;
    3511 
    35123514                    hmR0SvmSetPendingEvent(pVCpu, &Event, 0 /* GCPtrFaultAddress */);
    35133515                }
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