qemu/scripts
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
..
ci Add Kubernetes runner configuration 2023-05-24 12:26:40 -07:00
coccinelle cleanup: Tweak and re-run return_directly.cocci 2022-12-14 16:19:35 +01:00
codeconverter
coverage scripts/coverage: initial coverage comparison script 2023-04-04 15:16:29 +01:00
coverity-scan coverity: the definitive COMPONENTS.md update 2023-05-18 08:53:51 +02:00
kvm vmxcap: add tertiary execution controls 2022-05-12 14:23:19 +02:00
modules
oss-fuzz gitlab: add lsan suppression file to workaround tcmalloc issues 2023-02-02 10:44:23 +00:00
performance
qapi qapi: Improve error message for description following section 2023-05-22 10:03:26 +02:00
qemu-guest-agent
qemugdb
qmp python: rename qemu.aqmp to qemu.qmp 2022-04-21 11:01:00 -04:00
simplebench python: rename qemu.aqmp to qemu.qmp 2022-04-21 11:01:00 -04:00
tracetool tracetool: use relative paths for '#line' preprocessor directives 2023-04-24 13:53:44 -04:00
analyse-9p-simpletrace.py
analyse-locks-simpletrace.py
analyze-inclusions scripts/analyze-inclusions: drop qemu-common.h from analysis 2022-04-21 16:56:55 +04:00
analyze-migration.py
archive-source.sh meson: use subproject for keycodemapdb 2023-05-26 12:34:18 +02:00
block-coroutine-wrapper.py block-coroutine-wrapper: Take AioContext lock in no_co_wrappers 2023-05-30 17:21:23 +02:00
check_sparse.py
checkpatch.pl checkpatch: add qemu_bh_new/aio_bh_new checks 2023-04-28 11:31:54 +02:00
clean-header-guards.pl disas: Remove libvixl disassembler 2022-07-05 10:15:49 +02:00
clean-includes scripts/clean-includes: Improve --git commit message 2023-02-08 07:16:23 +01:00
cleanup-trace-events.pl
cocci-macro-file.h compiler.h: replace QEMU_NORETURN with G_NORETURN 2022-04-21 17:03:51 +04:00
cpu-x86-uarch-abi.py python: rename qemu.aqmp to qemu.qmp 2022-04-21 11:01:00 -04:00
decodetree.py
device-crash-test tests: Use configure-provided pyvenv for tests 2023-05-18 08:53:51 +02:00
disas-objdump.pl
dump-guest-memory.py
entitlement.sh scripts/entitlement.sh: Use backward-compatible cp flags 2021-11-30 22:25:58 +01:00
extract-vsssdk-headers
feature_to_c.sh Add missing include statement for global xml_builtin 2022-11-06 09:48:42 +01:00
fix-multiline-comments.sh
gensyscalls.sh linux-user: Add LoongArch syscall support 2022-07-04 11:08:57 +05:30
get_maintainer.pl
git-submodule.sh scripts: check if .git exists before checking submodule status 2022-10-27 11:54:37 +01:00
git.orderfile scripts/git.orderfile: Display MAINTAINERS changes first 2023-01-13 16:22:57 +01:00
hxtool
kernel-doc
main.c configure, meson: move C++ compiler detection to meson.build 2022-10-01 21:16:36 +02:00
make-config-poison.sh meson: Avoid duplicates in generated config-poison.h again 2023-02-27 09:18:56 +01:00
make-release scripts/make-release: Only clone single branches to speed up the script 2022-12-15 15:02:35 +01:00
meson-buildoptions.py scripts: make sure scripts are invoked via $(PYTHON) 2023-05-19 20:40:29 +02:00
meson-buildoptions.sh Migration Pull request 2023-05-18 11:07:06 -07:00
meson.build
minikconf.py
modinfo-collect.py scripts: make sure scripts are invoked via $(PYTHON) 2023-05-19 20:40:29 +02:00
modinfo-generate.py scripts: make sure scripts are invoked via $(PYTHON) 2023-05-19 20:40:29 +02:00
mtest2make.py mtest2make.py: teach suite name that are just "PROJECT" 2023-04-20 11:17:34 +02:00
nsis.py scripts/nsis.py: Automatically package required DLLs of QEMU executables 2022-10-31 10:06:11 +01:00
probe-gdb-support.py scripts: make sure scripts are invoked via $(PYTHON) 2023-05-19 20:40:29 +02:00
qapi-gen.py
qemu-binfmt-conf.sh scripts/qemu-binfmt-conf: Add LoongArch to qemu_get_family() 2022-07-05 16:17:53 +05:30
qemu-gdb.py
qemu-stamp.py meson, configure: move --with-pkgversion, CONFIG_STAMP to meson 2022-05-07 07:46:58 +02:00
qemu-trace-stap
qemu-version.sh
refresh-pxe-roms.sh
render_block_graph.py python: rename qemu.aqmp to qemu.qmp 2022-04-21 11:01:00 -04:00
replay-dump.py
shaderinclude.py build-sys: fix crlf-ending C code 2023-02-02 10:44:23 +00:00
signrom.py
simpletrace.py
symlink-install-tree.py Add information how to fix common build error on Windows in symlink-install-tree 2023-05-16 09:14:18 +02:00
test-driver.py
tracetool.py
u2f-setup-gen.py
undefsym.py
update-linux-headers.sh update-linux-headers.sh: Add missing kernel headers. 2023-04-28 14:03:52 +02:00
update-mips-syscall-args.sh
update-syscalltbl.sh
userfaultfd-wrlat.py
vmstate-static-checker.py vmstate-static-checker: Recognize "num" field 2023-04-27 10:18:26 +02:00
xen-detect.c meson, configure: move Xen detection to meson 2022-05-07 07:46:58 +02:00