qemu-e2k/include
Kevin Wolf dea97c1fbd block-coroutine-wrapper: Take AioContext lock in no_co_wrappers
All of the functions that currently take a BlockDriverState, BdrvChild
or BlockBackend as their first parameter expect the associated
AioContext to be locked when they are called. In the case of
no_co_wrappers, they are called from bottom halves directly in the main
loop, so no other caller can be expected to take the lock for them. This
can result in assertion failures because a lock that isn't taken is
released in nested event loops.

Looking at the first parameter is already done by co_wrappers to decide
where the coroutine should run, so doing the same in no_co_wrappers is
only consistent. Take the lock in the generated bottom halves to fix the
problem.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230525124713.401149-2-kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2023-05-30 17:21:23 +02:00
..
authz
block block-coroutine-wrapper: Take AioContext lock in no_co_wrappers 2023-05-30 17:21:23 +02:00
chardev
crypto replace TABs with spaces 2023-03-20 12:43:50 +01:00
disas disas: Remove target-specific headers 2023-05-11 09:49:55 +01:00
exec tcg: Remove DEBUG_DISAS 2023-05-23 18:54:55 -07:00
fpu
gdbstub gdbstub: Remove gdb_do_syscallv 2023-03-07 20:44:09 +00:00
hw ppc patch queue for 2023-05-28: 2023-05-29 14:31:52 -07:00
io nbd/server: Fix drained_poll to wake coroutine in right AioContext 2023-05-19 19:16:53 +02:00
libdecnumber
migration migration: Move rate_limit_max and rate_limit_used to migration_stats 2023-05-18 18:40:51 +02:00
monitor monitor: add more *_locked() functions 2023-05-25 10:18:33 +02:00
net igb: Strip the second VLAN tag for extended VLAN 2023-05-23 15:20:15 +08:00
qapi monitor: mark mixed functions that can suspend 2023-04-20 11:17:35 +02:00
qemu include/qemu: Move CONFIG_ATOMIC128_OPT handling to atomic128.h 2023-05-23 16:51:18 -07:00
qom
scsi coroutine: Clean up superfluous inclusion of qemu/coroutine.h 2023-01-19 10:18:28 +01:00
semihosting
standard-headers Update linux headers to v6.3rc5 2023-04-28 15:55:55 +02:00
sysemu win32: wrap socket close() with an exception handler 2023-05-28 13:08:25 +04:00
tcg tcg: Split out tcg/debug-assert.h 2023-05-23 18:54:55 -07:00
ui ui: add helpers for virtio-multitouch events 2023-05-28 13:08:25 +04:00
user *: Add missing includes of qemu/plugin.h 2023-03-22 15:06:57 +00:00
elf.h replace TABs with spaces 2023-03-20 12:43:50 +01:00
glib-compat.h
qemu-io.h
qemu-main.h