When we get an EXTINT exit, the guest RIP already points to the instruction after the one that sent it into HLT state. Moving the RIP based on stale insn_len caused spurious L2 crashes. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> --- x86/vmx_tests.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/x86/vmx_tests.c b/x86/vmx_tests.c index 4f8ace1..79552fd 100644 --- a/x86/vmx_tests.c +++ b/x86/vmx_tests.c @@ -1297,10 +1297,8 @@ static int interrupt_exit_handler(void) asm volatile ("nop"); irq_disable(); } - if (vmx_get_test_stage() >= 2) { + if (vmx_get_test_stage() >= 2) vmcs_write(GUEST_ACTV_STATE, ACTV_ACTIVE); - vmcs_write(GUEST_RIP, guest_rip + insn_len); - } return VMX_TEST_RESUME; default: printf("Unknown exit reason, %d\n", reason); -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html