Initially found with the following semantic patch:
@ type @
BlockDriverAIOCB *x;
expression E;
@@
x = E;
- if (x == NULL) { ... }
@ acb1 @
expression E, E1;
@@
E1->acb = E;
- if (E1->acb == NULL) { ... }
@ aiocb1 @
expression E, E1;
@@
E1->aiocb = E;
- if (E1->aiocb == NULL) { ... }
@ acb @
expression E, E1;
@@
E1.acb = E;
- if (E1.acb == NULL) { ... }
@ aiocb @
expression E, E1;
@@
E1.aiocb = E;
- if (E1.aiocb == NULL) { ... }
but changed manually to include an assert.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
dbs->acb = dbs->io_func(dbs->bs, dbs->sector_num, &dbs->iov,
dbs->iov.size / 512, dma_bdrv_cb, dbs);
- if (!dbs->acb) {
- dma_complete(dbs, -EIO);
- }
+ assert(dbs->acb);
}
static void dma_aio_cancel(BlockDriverAIOCB *acb)