On 10/29/26 11:13, Alex Bennée wrote:
There is a race in qemu_process_cpu_events and sleeping on halt_cond
where we can miss the setting of the event_register which would cause
arm_cpu_has_work to report we shouldn't sleep. As by definition the
bql has to be held when we go to sleep against halt_cond guard the
kicking of the cpus by the SEV helper with the BQL to ensure things
are properly serialised.
The other places that set event_register are fine as they are either
in the same vCPU context or are already serialised by the BQL.
Also use qemu_cond_wait_bql like the other halt_cond users.
Resolves:https://gitlab.com/qemu-project/qemu/-/work_items/4660
Resolves:https://gitlab.com/qemu-project/qemu/-/work_items/4670
Cc:[email protected]
Fixes: d238858bff60 ("target/arm: Implement WFE, SEV and SEVONPEND for
Cortex-M")
Signed-off-by: Alex Bennée<[email protected]>
---
v2
- drop pointless cs assignment.
---
system/cpus.c | 2 +-
target/arm/tcg/op_helper.c | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
Reviewed-by: Richard Henderson <[email protected]>
r~