aboutsummaryrefslogtreecommitdiff
path: root/accel/tcg
diff options
context:
space:
mode:
authorEmilio G. Cota <cota@braap.org>2019-01-15 14:47:54 -0500
committerPaolo Bonzini <pbonzini@redhat.com>2019-02-05 16:50:16 +0100
commit6aaa24f9d494a46c0a5aa5c7202cf50b3a7075ef (patch)
tree4a46a4071a04a258de35937f9083be04a0b25a23 /accel/tcg
parent8fd3a9b81d29abf16f9cadfdcb55dd3a229ab12a (diff)
cpu-exec: reset BQL after longjmp in cpu_exec_step_atomic
Just like we do in cpu_exec(). Reported-by: Max Filippov <jcmvbkbc@gmail.com> Tested-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Emilio G. Cota <cota@braap.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'accel/tcg')
-rw-r--r--accel/tcg/cpu-exec.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
index 49b3259f36..fab30af86f 100644
--- a/accel/tcg/cpu-exec.c
+++ b/accel/tcg/cpu-exec.c
@@ -266,6 +266,9 @@ void cpu_exec_step_atomic(CPUState *cpu)
#ifndef CONFIG_SOFTMMU
tcg_debug_assert(!have_mmap_lock());
#endif
+ if (qemu_mutex_iothread_locked()) {
+ qemu_mutex_unlock_iothread();
+ }
assert_no_pages_locked();
}