On 03/08/2017 02:50 AM, Alex Bennée wrote:
From: Paolo Bonzini <pbonz...@redhat.com>

Paths through the softmmu code during code generation now need to be audited
to check for double locking of tb_lock.  In particular, VMEXIT can take tb_lock
through cpu_vmexit -> cpu_x86_update_cr4 -> tlb_flush.

To avoid this, split VMEXIT delivery in two parts, similar to what is done with
exceptions.  cpu_vmexit only records the VMEXIT exit code and information, and
cc->do_interrupt can then deliver it when it is safe to take the lock.

Reported-by: Alexander Boettcher <alexander.boettc...@genode-labs.com>
Suggested-by: Richard Henderson <r...@twiddle.net>
Tested-by: Alexander Boettcher <alexander.boettc...@genode-labs.com>
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
Signed-off-by: Alex Bennée <alex.ben...@linaro.org>
---
 target/i386/cpu.h        |  2 ++
 target/i386/seg_helper.c | 20 +++++++++++---------
 target/i386/svm_helper.c | 22 +++++++++++++---------
 3 files changed, 26 insertions(+), 18 deletions(-)

Reviewed-by: Richard Henderson <r...@twiddle.net>


r~

Reply via email to