summary refs log tree commit diff stats
path: root/system/dma-helpers.c
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/dma-helpers.c
parented18b1ed4f34888872b5fbc2f217c65d62c95cfd (diff)
downloadfocaccia-qemu-10bcb0d996634aec642b000f05a72c93b652b2e6.tar.gz
focaccia-qemu-10bcb0d996634aec642b000f05a72c93b652b2e6.zip
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/dma-helpers.c')
-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 528117f256..9b221cf94e 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;