]> git.ipfire.org Git - thirdparty/qemu.git/commit
plugins: fix qemu_plugin_reset
authorPierrick Bouvier <pierrick.bouvier@linaro.org>
Wed, 23 Oct 2024 11:34:06 +0000 (12:34 +0100)
committerMichael Tokarev <mjt@tls.msk.ru>
Tue, 29 Oct 2024 09:10:10 +0000 (12:10 +0300)
commitc044440a42041ae2de94117dd9d17cfd7d80dfd8
tree554d11e5948d30ed7c407cdbc72d46e09f4e1ce3
parent34f38a1b11d646a898cb6378706d3bcf5a786a9b
plugins: fix qemu_plugin_reset

34e5e1 refactored the plugin context initialization. After this change,
tcg_ctx->plugin_insn is not reset inconditionnally anymore, but only if
one plugin at least is active.

When uninstalling the last plugin active, we stopped reinitializing
tcg_ctx->plugin_insn, which leads to memory callbacks being emitted.
This results in an error as they don't appear in a plugin op sequence as
expected.

The correct fix is to make sure we reset plugin translation variables
after current block translation ends. This way, we can catch any
potential misuse of those after a given block, in more than fixing the
current bug.

Fixes: https://gitlab.com/qemu-project/qemu/-/issues/2570
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Tested-by: Robbin Ehn <rehn@rivosinc.com>
Message-Id: <20241015003819.984601-1-pierrick.bouvier@linaro.org>
[AJB: trim patch version details from commit msg]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20241023113406.1284676-19-alex.bennee@linaro.org>
(cherry picked from commit b56f7dd203c301231d3bb2d071b4e32b345f49d6)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
accel/tcg/plugin-gen.c