Changing the IP/IM registers may cause interrupts, so hold the BQL. Cc: qemu-sta...@nongnu.org Signed-off-by: Michael Walle <mich...@walle.cc> --- target/lm32/gdbstub.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/target/lm32/gdbstub.c b/target/lm32/gdbstub.c index cf929dd392..dac9418a2b 100644 --- a/target/lm32/gdbstub.c +++ b/target/lm32/gdbstub.c @@ -18,6 +18,7 @@ * License along with this library; if not, see <http://www.gnu.org/licenses/>. */ #include "qemu/osdep.h" +#include "qemu/main-loop.h" #include "qemu-common.h" #include "cpu.h" #include "exec/gdbstub.h" @@ -82,10 +83,14 @@ int lm32_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n) env->ie = tmp; break; case 37: + qemu_mutex_lock_iothread(); lm32_pic_set_im(env->pic_state, tmp); + qemu_mutex_unlock_iothread(); break; case 38: + qemu_mutex_lock_iothread(); lm32_pic_set_ip(env->pic_state, tmp); + qemu_mutex_unlock_iothread(); break; } } -- 2.11.0