aboutsummaryrefslogtreecommitdiff
path: root/system
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@redhat.com>2023-12-05 13:19:59 -0500
committerKevin Wolf <kwolf@redhat.com>2023-12-21 22:49:27 +0100
commit10bcb0d996634aec642b000f05a72c93b652b2e6 (patch)
tree2c769c658123367ad61a229ac85e12c0c33df8ee /system
parented18b1ed4f34888872b5fbc2f217c65d62c95cfd (diff)
downloadqemu-10bcb0d996634aec642b000f05a72c93b652b2e6.zip
qemu-10bcb0d996634aec642b000f05a72c93b652b2e6.tar.gz
qemu-10bcb0d996634aec642b000f05a72c93b652b2e6.tar.bz2
scsi: assert that callbacks run in the correct AioContext
Since the removal of AioContext locking, the correctness of the code relies on running requests from a single AioContext at any given time. Add assertions that verify that callbacks are invoked in the correct AioContext. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Message-ID: <20231205182011.1976568-3-stefanha@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'system')
-rw-r--r--system/dma-helpers.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/system/dma-helpers.c b/system/dma-helpers.c
index 528117f..9b221cf 100644
--- a/system/dma-helpers.c
+++ b/system/dma-helpers.c
@@ -119,6 +119,9 @@ static void dma_blk_cb(void *opaque, int ret)
trace_dma_blk_cb(dbs, ret);
+ /* DMAAIOCB is not thread-safe and must be accessed only from dbs->ctx */
+ assert(ctx == qemu_get_current_aio_context());
+
dbs->acb = NULL;
dbs->offset += dbs->iov.size;