On Fri, Apr 11, 2025 at 2:19 AM Paolo Bonzini <pbonz...@redhat.com> wrote: > > qtest_set_command_cb passed to g_once should match GThreadFunc, > which it does not. But using g_once is actually unnecessary, > because the function is called by riscv_harts_realize() under > the Big QEMU Lock. > > Reported-by: Kohei Tokunaga <ktokunaga.m...@gmail.com> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Alistair > --- > hw/riscv/riscv_hart.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/hw/riscv/riscv_hart.c b/hw/riscv/riscv_hart.c > index a55d1566687..bb9104bae0b 100644 > --- a/hw/riscv/riscv_hart.c > +++ b/hw/riscv/riscv_hart.c > @@ -104,8 +104,11 @@ static bool csr_qtest_callback(CharBackend *chr, gchar > **words) > > static void riscv_cpu_register_csr_qtest_callback(void) > { > - static GOnce once; > - g_once(&once, (GThreadFunc)qtest_set_command_cb, csr_qtest_callback); > + static bool first = true; > + if (first) { > + first = false; > + qtest_set_command_cb(csr_qtest_callback); > + } > } > #endif > > -- > 2.49.0 > >