]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
hvf: only update sysreg from owning thread
authorMads Ynddal <m.ynddal@samsung.com>
Wed, 2 Apr 2025 13:52:29 +0000 (15:52 +0200)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 6 May 2025 14:01:22 +0000 (15:01 +0100)
hv_vcpu_set_sys_reg should only be called from the owning thread of the
vCPU, so to avoid crashes, the call to hvf_update_guest_debug is
dispatched to the individual threads.

Tested-by: Daniel Gomez <da.gomez@samsung.com>
Signed-off-by: Mads Ynddal <m.ynddal@samsung.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20250402135229.28143-3-mads@ynddal.dk
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
accel/hvf/hvf-all.c

index d404e01adef6cdebcef27564ecf0afe12f697d7b..3fc65d6b2311d94a40fc0003dc679e89806d993a 100644 (file)
@@ -58,8 +58,13 @@ int hvf_sw_breakpoints_active(CPUState *cpu)
     return !QTAILQ_EMPTY(&hvf_state->hvf_sw_breakpoints);
 }
 
-int hvf_update_guest_debug(CPUState *cpu)
+static void do_hvf_update_guest_debug(CPUState *cpu, run_on_cpu_data arg)
 {
     hvf_arch_update_guest_debug(cpu);
+}
+
+int hvf_update_guest_debug(CPUState *cpu)
+{
+    run_on_cpu(cpu, do_hvf_update_guest_debug, RUN_ON_CPU_NULL);
     return 0;
 }