On 21 May 2018 at 13:21, Michael Walle <mich...@walle.cc> wrote: > 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; > } > }
Are you sure this is necessary? I would have expected the gdbstub to be operating under the qemu lock anyway. thanks -- PMM