diff options
author | Mads Ynddal <m.ynddal@samsung.com> | 2025-04-02 15:52:29 +0200 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2025-05-06 15:01:22 +0100 |
commit | d5bd8d8267eba7379d94e0c2e46e54dd475d9886 (patch) | |
tree | 6404f5cf626db816d8e57cc2f5043163e8368dbb | |
parent | 90f0078d023fc364c870188075f530f84f652758 (diff) | |
download | qemu-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.c | 7 |
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; } |