diff options
author | Thanos Makatos <thanos.makatos@nutanix.com> | 2021-06-09 20:59:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-09 20:59:54 +0100 |
commit | b665c3982c1efe2bb896fc8b556d24bcf996435a (patch) | |
tree | 250a7c901b0dd291df30cdae3ebb4cbb85ce6d25 /samples/server.c | |
parent | 970d9b3e2edc656ef8e9a68b6d83cdb891c58455 (diff) | |
download | libvfio-user-b665c3982c1efe2bb896fc8b556d24bcf996435a.zip libvfio-user-b665c3982c1efe2bb896fc8b556d24bcf996435a.tar.gz libvfio-user-b665c3982c1efe2bb896fc8b556d24bcf996435a.tar.bz2 |
clear dirty pages bitmap after getting dirty pages but keep mapped segments dirty (#551)
Signed-off-by: Thanos Makatos <thanos.makatos@nutanix.com>
Reviewed-by: John Levon <john.levon@nutanix.com>
Diffstat (limited to 'samples/server.c')
-rw-r--r-- | samples/server.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/samples/server.c b/samples/server.c index 6a31251..4da476b 100644 --- a/samples/server.c +++ b/samples/server.c @@ -212,13 +212,13 @@ static void do_dma_io(vfu_ctx_t *vfu_ctx, struct server_data *server_data) unsigned char buf[count]; unsigned char md5sum1[MD5_DIGEST_LENGTH], md5sum2[MD5_DIGEST_LENGTH]; int i, ret; - dma_sg_t sg; + dma_sg_t *sg = alloca(dma_sg_size()); assert(vfu_ctx != NULL); ret = vfu_addr_to_sg(vfu_ctx, (vfu_dma_addr_t)server_data->regions[0].iova.iov_base, - count, &sg, 1, PROT_WRITE); + count, sg, 1, PROT_WRITE); if (ret < 0) { err(EXIT_FAILURE, "failed to map %p-%p", server_data->regions[0].iova.iov_base, @@ -229,7 +229,7 @@ static void do_dma_io(vfu_ctx_t *vfu_ctx, struct server_data *server_data) get_md5sum(buf, count, md5sum1); vfu_log(vfu_ctx, LOG_DEBUG, "%s: WRITE addr %p count %d", __func__, server_data->regions[0].iova.iov_base, count); - ret = vfu_dma_write(vfu_ctx, &sg, buf); + ret = vfu_dma_write(vfu_ctx, sg, buf); if (ret < 0) { err(EXIT_FAILURE, "vfu_dma_write failed"); } @@ -237,7 +237,7 @@ static void do_dma_io(vfu_ctx_t *vfu_ctx, struct server_data *server_data) memset(buf, 0, count); vfu_log(vfu_ctx, LOG_DEBUG, "%s: READ addr %p count %d", __func__, server_data->regions[0].iova.iov_base, count); - ret = vfu_dma_read(vfu_ctx, &sg, buf); + ret = vfu_dma_read(vfu_ctx, sg, buf); if (ret < 0) { err(EXIT_FAILURE, "vfu_dma_read failed"); } |