aboutsummaryrefslogtreecommitdiff
path: root/samples/server.c
diff options
context:
space:
mode:
authorThanos Makatos <thanos.makatos@nutanix.com>2021-06-09 20:59:54 +0100
committerGitHub <noreply@github.com>2021-06-09 20:59:54 +0100
commitb665c3982c1efe2bb896fc8b556d24bcf996435a (patch)
tree250a7c901b0dd291df30cdae3ebb4cbb85ce6d25 /samples/server.c
parent970d9b3e2edc656ef8e9a68b6d83cdb891c58455 (diff)
downloadlibvfio-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.c8
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");
}