mttcg/i386: Patch instruction using async_safe_* framework
commitcb58a6d3611b2d0ff4ed29bb6b659c95a23cb2d5
authorPranith Kumar <bobby.prani@gmail.com>
Wed, 12 Jul 2017 21:51:43 +0000 (12 17:51 -0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 14 Jul 2017 10:04:35 +0000 (14 12:04 +0200)
tree03cf4e0264a6eb1f875395785c152792c5de6e7f
parent406bc339b0505fcfc2ffcbca1f05a3756e338a65
mttcg/i386: Patch instruction using async_safe_* framework

In mttcg, calling pause_all_vcpus() during execution from the
generated TBs causes a deadlock if some vCPU is waiting for exclusive
execution in start_exclusive(). Fix this by using the aync_safe_*
framework instead of pausing vcpus for patching instructions.

CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
Message-Id: <20170712215143.19594-2-bobby.prani@gmail.com>
[Get rid completely of the TCG-specific code. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/i386/kvmvapic.c