aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMads Ynddal <m.ynddal@samsung.com>2025-04-02 15:52:29 +0200
committerPeter Maydell <peter.maydell@linaro.org>2025-05-06 15:01:22 +0100
commitd5bd8d8267eba7379d94e0c2e46e54dd475d9886 (patch)
tree6404f5cf626db816d8e57cc2f5043163e8368dbb
parent90f0078d023fc364c870188075f530f84f652758 (diff)
downloadqemu-d5bd8d8267eba7379d94e0c2e46e54dd475d9886.zip
qemu-d5bd8d8267eba7379d94e0c2e46e54dd475d9886.tar.gz
qemu-d5bd8d8267eba7379d94e0c2e46e54dd475d9886.tar.bz2
hvf: only update sysreg from owning thread
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>
-rw-r--r--accel/hvf/hvf-all.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/accel/hvf/hvf-all.c b/accel/hvf/hvf-all.c
index d404e01..3fc65d6 100644
--- a/accel/hvf/hvf-all.c
+++ b/accel/hvf/hvf-all.c
@@ -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;
}