diff options
author | Stefan Hajnoczi <stefanha@redhat.com> | 2023-12-05 13:19:59 -0500 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2023-12-21 22:49:27 +0100 |
commit | 10bcb0d996634aec642b000f05a72c93b652b2e6 (patch) | |
tree | 2c769c658123367ad61a229ac85e12c0c33df8ee /system | |
parent | ed18b1ed4f34888872b5fbc2f217c65d62c95cfd (diff) |
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.c | 3 |
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; |