aboutsummaryrefslogtreecommitdiff
path: root/hw/avr/arduino.c
diff options
context:
space:
mode:
authorFiona Ebner <f.ebner@proxmox.com>2025-05-30 17:10:49 +0200
committerKevin Wolf <kwolf@redhat.com>2025-06-04 18:16:34 +0200
commitffdcd081f52544f065020c780a6c522dace6b0af (patch)
treeb942680ca6b7c0e506172f39f7bccab3bc0d4e1e /hw/avr/arduino.c
parente66dbda11eab2b4a091d470f3508a4d6ca60eaf5 (diff)
downloadqemu-ffdcd081f52544f065020c780a6c522dace6b0af.zip
qemu-ffdcd081f52544f065020c780a6c522dace6b0af.tar.gz
qemu-ffdcd081f52544f065020c780a6c522dace6b0af.tar.bz2
block: move drain outside of bdrv_root_attach_child()
This is part of resolving the deadlock mentioned in commit "block: move draining out of bdrv_change_aio_context() and mark GRAPH_RDLOCK". The function bdrv_root_attach_child() runs under the graph lock, so it is not allowed to drain. It is called by: 1. blk_insert_bs(), where a drained section is introduced. 2. block_job_add_bdrv(), which holds the graph lock itself. block_job_add_bdrv() is called by: 1. mirror_start_job() 2. stream_start() 3. commit_start() 4. backup_job_create() 5. block_job_create() 6. In the test_blockjob_common_drain_node() unit test In all callers, a drained section is introduced. Signed-off-by: Fiona Ebner <f.ebner@proxmox.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Message-ID: <20250530151125.955508-13-f.ebner@proxmox.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'hw/avr/arduino.c')
0 files changed, 0 insertions, 0 deletions