VirtualBox

Changeset 80510 in vbox


Ignore:
Timestamp:
Aug 30, 2019 9:56:16 AM (5 years ago)
Author:
vboxsync
Message:

VMM/IEM: Added an assertion in IEMExecLots that the TRPM event being checked is indeed an interrupt (since we also check if interrupts are enabled before injecting them). Otherwise, we risk not delivering an exception (that is in TRPM) if interrupts are disabled and can lead to invalid execution sequence.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAll.cpp

    r80489 r80510  
    1427114271
    1427214272    /** @todo What if we are injecting an exception and not an interrupt? Is that
    14273      *        possible here? */
     14273     *        possible here? For now we assert it is indeed only an interrupt. */
    1427414274    if (   fIntrEnabled
    1427514275        && TRPMHasTrap(pVCpu)
     
    1428114281        RTGCPTR     uCr2;
    1428214282        int rc2 = TRPMQueryTrapAll(pVCpu, &u8TrapNo, &enmType, &uErrCode, &uCr2, NULL /* pu8InstLen */); AssertRC(rc2);
     14283        Assert(enmType == TRPM_HARDWARE_INT);
    1428314284        VBOXSTRICTRC rcStrict = IEMInjectTrap(pVCpu, u8TrapNo, enmType, (uint16_t)uErrCode, uCr2, 0 /* cbInstr */);
    1428414285        TRPMResetTrap(pVCpu);
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