aboutsummaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorDouglas Crosher <dtc-ubuntu@scieneer.com>2020-09-22 14:17:56 +1000
committerPaolo Bonzini <pbonzini@redhat.com>2020-09-30 19:11:36 +0200
commit56bf1c4985fb9ad24642f176cc40db0eb4f3dc31 (patch)
treed25279609b43b205c2a53ed412d309ba2dd7929a /target
parentbfac6d1933a5fd8198e622dfd19196c2cc6cf74b (diff)
helper_syscall x86_64: clear exception_is_int
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>
Diffstat (limited to 'target')
-rw-r--r--target/i386/seg_helper.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/target/i386/seg_helper.c b/target/i386/seg_helper.c
index b96de068ca..be88938c2a 100644
--- a/target/i386/seg_helper.c
+++ b/target/i386/seg_helper.c
@@ -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);
}