cpu-exec: Unlock tb_lock if we longjmp out of code generation
commitbae2c270906475093e3d5f4c3103dbe67bf82009
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 4 Apr 2014 16:42:56 +0000 (4 17:42 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 4 Apr 2014 17:29:25 +0000 (4 18:29 +0100)
treec1344aaf7b7b20461209e3d4075a635455f31d75
parentcd7ccc83512a0cba5aa0c778e7507f267cfb1b16
cpu-exec: Unlock tb_lock if we longjmp out of code generation

If the guest attempts to execute from unreadable memory, this will
cause us to longjmp back to the main loop from inside the
target frontend decoder. For linux-user mode, this means we will
still hold the tb_ctx.tb_lock, and will deadlock when we try to
start executing code again. Unlock the lock in the return-from-longjmp
code path to avoid this.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Acked-by: Andrei Warkentin <andrey.warkentin@gmail.com>
Reviewed-by: Richard Henderson <rth@twiddle.net>
cpu-exec.c