mirror_qemu/accel
Nicholas Piggin e6fdfb8433 accel/tcg: mttcg remove false-negative halted assertion
mttcg asserts that an execution ending with EXCP_HALTED must have
cpu->halted. However between the event or instruction that sets
cpu->halted and requests exit and the assertion here, an
asynchronous event could clear cpu->halted.

This leads to crashes running AIX on ppc/pseries because it uses
H_CEDE/H_PROD hcalls, where H_CEDE sets self->halted = 1 and
H_PROD sets other cpu->halted = 0 and kicks it.

H_PROD could be turned into an interrupt to wake, but several other
places in ppc, sparc, and semihosting follow what looks like a similar
pattern setting halted = 0 directly. So remove this assertion.

Reported-by: Ivan Warren <ivan@vmfacility.fr>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Message-Id: <20230829010658.8252-1-npiggin@gmail.com>
[rth: Keep the case label and adjust the comment.]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
(cherry picked from commit 0e5903436d)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2023-09-27 21:39:52 +03:00
..
hvf Fix 'writeable' typos 2022-06-08 19:38:47 +01:00
kvm kvm: Introduce kvm_arch_get_default_type hook 2023-09-11 10:53:50 +03:00
qtest accel/qtest: Support qtest accelerator for Windows 2022-10-28 11:17:12 +02:00
stubs accel/kvm: move kvm_update_guest_debug to inline stub 2022-10-06 11:53:41 +01:00
tcg accel/tcg: mttcg remove false-negative halted assertion 2023-09-27 21:39:52 +03:00
xen sysemu: Let VMChangeStateHandler take boolean 'running' argument 2021-03-09 23:13:57 +01:00
Kconfig Add NVMM accelerator: configure and build logic 2021-05-04 14:15:34 +02:00
accel-common.c gdbstub: move sstep flags probing into AccelClass 2022-10-06 11:53:41 +01:00
accel-softmmu.c accel: abort if we fail to load the accelerator plugin 2022-11-06 09:48:50 +01:00
accel-softmmu.h accel: replace struct CpusAccel with AccelOpsClass 2021-02-05 10:24:15 -10:00
accel-user.c accel: extend AccelState and AccelClass to user-mode 2021-02-05 10:24:15 -10:00
dummy-cpus.c accel/qtest: Support qtest accelerator for Windows 2022-10-28 11:17:12 +02:00
meson.build accel/qtest: Support qtest accelerator for Windows 2022-10-28 11:17:12 +02:00