aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorThanos Makatos <thanos.makatos@nutanix.com>2021-02-15 10:00:54 +0000
committerGitHub <noreply@github.com>2021-02-15 10:00:54 +0000
commitc08ce6363b1d3487f330a542ed5273f5d055d3bc (patch)
tree77e15194466d17b1b84c464cb08f277ed19a48d4 /lib
parent3d60fca4d4b4ef100d23f3470a5456aef1b1a68e (diff)
downloadlibvfio-user-c08ce6363b1d3487f330a542ed5273f5d055d3bc.zip
libvfio-user-c08ce6363b1d3487f330a542ed5273f5d055d3bc.tar.gz
libvfio-user-c08ce6363b1d3487f330a542ed5273f5d055d3bc.tar.bz2
ack dirty page commands w/o DMA controller (#334)
need unit tests Signed-off-by: Thanos Makatos <thanos.makatos@nutanix.com> Reviewed-by: John Levon <john.levon@nutanix.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/libvfio-user.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/libvfio-user.c b/lib/libvfio-user.c
index 9b87899..fb94b23 100644
--- a/lib/libvfio-user.c
+++ b/lib/libvfio-user.c
@@ -843,12 +843,17 @@ exec_command(vfu_ctx_t *vfu_ctx, struct vfio_user_header *hdr, size_t size,
case VFIO_USER_DIRTY_PAGES:
// FIXME: don't allow migration calls if migration == NULL
- ret = handle_dirty_pages(vfu_ctx, cmd_data_size, iovecs, nr_iovecs,
- cmd_data);
+ if (vfu_ctx->dma != NULL) {
+ ret = handle_dirty_pages(vfu_ctx, cmd_data_size, iovecs,
+ nr_iovecs, cmd_data);
+ } else {
+ ret = 0;
+ }
if (ret >= 0) {
*free_iovec_data = false;
}
break;
+
default:
vfu_log(vfu_ctx, LOG_ERR, "bad command %d", hdr->cmd);
ret = -EINVAL;