helper_syscall x86_64: clear exception_is_int
authorDouglas Crosher <dtc-ubuntu@scieneer.com>
Tue, 22 Sep 2020 04:17:56 +0000 (14:17 +1000)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 30 Sep 2020 17:11:36 +0000 (19:11 +0200)
The exception_is_int flag may be set on entry to helper_syscall,
e.g. after a prior interrupt that has returned, and processing
EXCP_SYSCALL as an interrupt causes it to fail so clear this flag.

Signed-off-by: Douglas Crosher <dtc-ubuntu@scieneer.com>
Message-Id: <a7dab33e-eda6-f988-52e9-f3d32db7538d@scieneer.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
target/i386/seg_helper.c

index b96de068cad02d98e49c862564bb5625677b8eb1..be88938c2a04ff070b0114312774a060bc57b2e6 100644 (file)
@@ -975,6 +975,7 @@ void helper_syscall(CPUX86State *env, int next_eip_addend)
     CPUState *cs = env_cpu(env);
 
     cs->exception_index = EXCP_SYSCALL;
+    env->exception_is_int = 0;
     env->exception_next_eip = env->eip + next_eip_addend;
     cpu_loop_exit(cs);
 }