You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qemu/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>
6 days ago
..
accel-blocker.h
accel-ops.h
arch_init.h
balloon.h
block-backend-common.h
block-backend-global-state.h
block-backend-io.h
block-backend.h
block-ram-registrar.h
blockdev.h
confidential-guest-support.h
cpu-throttle.h
cpu-timers-internal.h
cpu-timers.h
cpus.h
cryptodev-vhost-user.h
cryptodev-vhost.h
cryptodev.h
device_tree.h
dirtylimit.h
dirtyrate.h
dma.h
dump-arch.h
dump.h
event-loop-base.h
host_iommu_device.h
hostmem.h
hvf.h
hvf_int.h
hw_accel.h
iommufd.h
iothread.h
kvm.h
kvm_int.h
kvm_xen.h
memory_mapping.h
numa.h
nvmm.h
os-posix.h
os-win32.h
qtest.h
replay.h
reset.h
rng-random.h
rng.h
rtc.h
runstate-action.h
runstate.h
seccomp.h
spdm-socket.h
stats.h
system.h
tcg.h
tpm.h
tpm_backend.h
tpm_util.h
vhost-user-backend.h
watchdog.h
whpx.h
xen-mapcache.h
xen.h