VirtualBox

Changeset 79223 in vbox


Ignore:
Timestamp:
Jun 19, 2019 5:50:27 AM (6 years ago)
Author:
vboxsync
Message:

VMM/HMVMXR0: Nested VMX: bugref:9180 On way back to ring-3, don't assert about VM-entry interruption info valid bit if the VM-entry failed (e.g, due to invalid-guest state)..

File:
1 edited

Legend:

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

    r79202 r79223  
    88888888         * This can be pretty hard to debug otherwise, interrupts might get injected twice
    88898889         * occasionally, see @bugref{9180#c42}.
     8890         *
     8891         * However, if the VM-entry failed, any VM entry-interruption info. field would
     8892         * be left unmodified as the event would not have been injected to the guest. In
     8893         * such cases, don't assert, we're not going to continue guest execution anyway.
    88908894         */
     8895        uint32_t uExitReason;
    88918896        uint32_t uEntryIntInfo;
    8892         int rc = VMXReadVmcs32(VMX_VMCS32_CTRL_ENTRY_INTERRUPTION_INFO, &uEntryIntInfo);
     8897        int rc = VMXReadVmcs32(VMX_VMCS32_RO_EXIT_REASON, &uExitReason);
     8898        rc    |= VMXReadVmcs32(VMX_VMCS32_CTRL_ENTRY_INTERRUPTION_INFO, &uEntryIntInfo);
    88938899        AssertRC(rc);
    8894         Assert(!VMX_ENTRY_INT_INFO_IS_VALID(uEntryIntInfo));
     8900        Assert(VMX_EXIT_REASON_HAS_ENTRY_FAILED(uExitReason) || !VMX_ENTRY_INT_INFO_IS_VALID(uEntryIntInfo));
    88958901    }
    88968902#endif
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