This patch fixes missing the assignement of the copy length
when doing batched copies in the sync dequeue path.

Fixes: cd79d1b030bd ("vhost: fix unnecessary dirty page logging")

Suggested-by: Chenbo Xia <chenbo....@intel.com>
Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com>
---
 lib/vhost/virtio_net.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/vhost/virtio_net.c b/lib/vhost/virtio_net.c
index 12b7fbe7f9..35fa4670fd 100644
--- a/lib/vhost/virtio_net.c
+++ b/lib/vhost/virtio_net.c
@@ -1127,13 +1127,13 @@ sync_fill_seg(struct virtio_net *dev, struct 
vhost_virtqueue *vq,
                        batch_copy[vq->batch_copy_nb_elems].src =
                                rte_pktmbuf_mtod_offset(m, void *, mbuf_offset);
                        batch_copy[vq->batch_copy_nb_elems].log_addr = buf_iova;
-                       batch_copy[vq->batch_copy_nb_elems].len = cpy_len;
                } else {
                        batch_copy[vq->batch_copy_nb_elems].dst =
                                rte_pktmbuf_mtod_offset(m, void *, mbuf_offset);
                        batch_copy[vq->batch_copy_nb_elems].src =
                                (void *)((uintptr_t)(buf_addr));
                }
+               batch_copy[vq->batch_copy_nb_elems].len = cpy_len;
                vq->batch_copy_nb_elems++;
        }
 }
-- 
2.35.3

Reply via email to