diff options
author | Thanos Makatos <thanos.makatos@nutanix.com> | 2021-11-30 14:40:18 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-30 14:40:18 +0000 |
commit | f2dd09649e31540996fa4e9497693d1b27bc88fe (patch) | |
tree | 004db91ebc9cfa68af9bd5f2ff96fc11fabcb6db /lib/dma.c | |
parent | 02174878b1f7a70d3ac09c50c12799df0a1f9406 (diff) | |
download | libvfio-user-f2dd09649e31540996fa4e9497693d1b27bc88fe.zip libvfio-user-f2dd09649e31540996fa4e9497693d1b27bc88fe.tar.gz libvfio-user-f2dd09649e31540996fa4e9497693d1b27bc88fe.tar.bz2 |
introduce device quiesce callback (#609)
Signed-off-by: Thanos Makatos <thanos.makatos@nutanix.com>
Reviewed-by: John Leon <john.levon@nutanix.com>
Diffstat (limited to 'lib/dma.c')
-rw-r--r-- | lib/dma.c | 19 |
1 files changed, 4 insertions, 15 deletions
@@ -156,7 +156,6 @@ MOCK_DEFINE(dma_controller_remove_region)(dma_controller_t *dma, { int idx; dma_memory_region_t *region; - int err; assert(dma != NULL); @@ -167,13 +166,8 @@ MOCK_DEFINE(dma_controller_remove_region)(dma_controller_t *dma, continue; } - err = dma_unregister == NULL ? 0 : dma_unregister(data, ®ion->info); - if (err != 0) { - err = errno; - vfu_log(dma->vfu_ctx, LOG_ERR, - "failed to dma_unregister() DMA region [%p, %p): %m", - region->info.iova.iov_base, iov_end(®ion->info.iova)); - return ERROR_INT(err); + if (dma_unregister != NULL) { + dma_unregister(data, ®ion->info); } assert(region->refcnt == 0); @@ -201,7 +195,6 @@ dma_controller_remove_all_regions(dma_controller_t *dma, for (i = 0; i < dma->nregions; i++) { dma_memory_region_t *region = &dma->regions[i]; - int err; vfu_log(dma->vfu_ctx, LOG_DEBUG, "removing DMA region " "iova=[%p, %p) vaddr=%p mapping=[%p, %p)", @@ -209,12 +202,8 @@ dma_controller_remove_all_regions(dma_controller_t *dma, region->info.vaddr, region->info.mapping.iov_base, iov_end(®ion->info.mapping)); - err = dma_unregister == NULL ? 0 : dma_unregister(data, ®ion->info); - if (err != 0) { - err = errno; - vfu_log(dma->vfu_ctx, LOG_ERR, - "failed to dma_unregister() DMA region [%p, %p): %m", - region->info.iova.iov_base, iov_end(®ion->info.iova)); + if (dma_unregister != NULL) { + dma_unregister(data, ®ion->info); } if (region->info.vaddr != NULL) { |