From 9ce38c20b9e2449f7d5b7e5dacafe8482e2aa35c Mon Sep 17 00:00:00 2001 From: "Emilio G. Cota" Date: Tue, 23 Oct 2018 14:36:36 -0400 Subject: [PATCH] tcg: access cpu->icount_decr.u16.high with atomics Consistently access u16.high with atomics to avoid undefined behaviour in MTTCG. Note that icount_decr.u16.low is only used in icount mode, so regular accesses to it are OK. Backports part of commit fff42f183ea4c3967405d4c1dce6d97dae4d64c8 from qemu --- qemu/qom/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qemu/qom/cpu.c b/qemu/qom/cpu.c index b79fd8a0..307b9254 100644 --- a/qemu/qom/cpu.c +++ b/qemu/qom/cpu.c @@ -145,7 +145,7 @@ static void cpu_common_reset(CPUState *cpu) cpu->mem_io_pc = 0; cpu->mem_io_vaddr = 0; cpu->icount_extra = 0; - cpu->icount_decr.u32 = 0; + atomic_set(&cpu->icount_decr.u32, 0); cpu->can_do_io = 0; cpu->exception_index = -1; cpu->crash_occurred = false;