]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
hw/riscv: Fix type conflict of GLib function pointers
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 10 Apr 2025 16:17:22 +0000 (18:17 +0200)
committerMichael Tokarev <mjt@tls.msk.ru>
Tue, 20 May 2025 06:55:35 +0000 (09:55 +0300)
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
(cherry picked from commit 56cde18d048e1e1f889e31f7553e1f39f03eeec5)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
hw/riscv/riscv_hart.c

index a55d15666874d3ca00c5cec501e4ada334c8dda6..bb9104bae0b139f278e6e49959551d8d0708c7ac 100644 (file)
@@ -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