qemu-cr16/include/system
Phil Dennis-Jordan e7bc0204e5 system/runstate: Fix regression, clarify BQL status of exit notifiers
By changing the way the main QEMU event loop is invoked, I inadvertently
changed the BQL status of exit notifiers: some of them implicitly
assumed they would be called with the BQL held; the BQL is however
not held during the exit(status) call in qemu_default_main().

Instead of attempting to ensuring we always call exit() from the BQL -
including any transitive calls - this change adds a BQL lock guard to
qemu_run_exit_notifiers, ensuring the BQL will always be held in the
exit notifiers.

Additionally, the BQL promise is now documented at the
qemu_{add,remove}_exit_notifier() declarations.

Fixes: f5ab12caba ("ui & main loop: Redesign of system-specific main
thread event handling")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2771
Reported-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu>
Tested-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
2025-01-15 18:05:19 +00:00
..
accel-blocker.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
accel-ops.h
arch_init.h
balloon.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
block-backend-common.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
block-backend-global-state.h
block-backend-io.h
block-backend.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
block-ram-registrar.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
blockdev.h
confidential-guest-support.h system: Move 'exec/confidential-guest-support.h' to system/ 2024-12-20 17:44:56 +01:00
cpu-throttle.h
cpu-timers-internal.h
cpu-timers.h
cpus.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
cryptodev-vhost-user.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
cryptodev-vhost.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
cryptodev.h
device_tree.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
dirtylimit.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
dirtyrate.h
dma.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
dump-arch.h
dump.h
event-loop-base.h
host_iommu_device.h
hostmem.h
hvf.h
hvf_int.h
hw_accel.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
iommufd.h
iothread.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
kvm.h Accel & Exec patch queue 2024-12-21 11:07:00 -05:00
kvm_int.h
kvm_xen.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
memory_mapping.h
numa.h
nvmm.h
os-posix.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
os-win32.h
qtest.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
replay.h
reset.h
rng-random.h
rng.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
rtc.h
runstate-action.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
runstate.h
seccomp.h
spdm-socket.h
stats.h
system.h system/runstate: Fix regression, clarify BQL status of exit notifiers 2025-01-15 18:05:19 +00:00
tcg.h
tpm.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
tpm_backend.h
tpm_util.h
vhost-user-backend.h
watchdog.h
whpx.h
xen-mapcache.h
xen.h