diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2025-04-10 18:17:22 +0200 |
|---|---|---|
| committer | Alistair Francis <alistair.francis@wdc.com> | 2025-05-19 13:33:12 +1000 |
| commit | 56cde18d048e1e1f889e31f7553e1f39f03eeec5 (patch) | |
| tree | df3bbb5cb5e45a393d6862a8fac25b52848a753c | |
| parent | d887736225984fcb3926e3f32f3cdc332c03ba8f (diff) | |
| download | focaccia-qemu-56cde18d048e1e1f889e31f7553e1f39f03eeec5.tar.gz focaccia-qemu-56cde18d048e1e1f889e31f7553e1f39f03eeec5.zip | |
hw/riscv: Fix type conflict of GLib function pointers
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.mail@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Kohei Tokunaga <ktokunaga.mail@gmail.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20250410161722.595634-1-pbonzini@redhat.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com> Cc: qemu-stable@nongnu.org
| -rw-r--r-- | hw/riscv/riscv_hart.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/hw/riscv/riscv_hart.c b/hw/riscv/riscv_hart.c index ac6539bd3e..333083a4f1 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 |