On Thu, Sep 25, 2025 at 5:55 AM Philippe Mathieu-Daudé <[email protected]> wrote: > > cpus_kick_thread() is called via cpu_exit() -> qemu_cpu_kick(), > and also via gdb_syscall_handling(). Access the CPUState field > using atomic accesses. See commit 8ac2ca02744 ("accel: use atomic > accesses for exit_request") for rationale. > > Signed-off-by: Philippe Mathieu-Daudé <[email protected]> > --- > system/cpus.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/system/cpus.c b/system/cpus.c > index 6062226d4ac..818a8047198 100644 > --- a/system/cpus.c > +++ b/system/cpus.c > @@ -480,10 +480,10 @@ void qemu_process_cpu_events(CPUState *cpu) > > void cpus_kick_thread(CPUState *cpu) > { > - if (cpu->thread_kicked) { > + if (qatomic_read(&cpu->thread_kicked)) { > return; > } > - cpu->thread_kicked = true; > + qatomic_set(&cpu->thread_kicked, true); > > #ifndef _WIN32 > int err = pthread_kill(cpu->thread->thread, SIG_IPI); > -- > 2.51.0 >
Reviewed-by: Manos Pitsidianakis <[email protected]>
