In the loop to copy virtio-net header to the descriptor buffer, destination pointer was incremented instead of the source pointer.
Fixes: fb3815cc614d ("vhost: handle virtually non-contiguous buffers in Rx-mrg") Fixes: 6727f5a739b6 ("vhost: handle virtually non-contiguous buffers in Rx") Cc: sta...@dpdk.org Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com> --- lib/librte_vhost/virtio_net.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c index 5fdd4172b..eed6b0227 100644 --- a/lib/librte_vhost/virtio_net.c +++ b/lib/librte_vhost/virtio_net.c @@ -277,7 +277,7 @@ copy_mbuf_to_desc(struct virtio_net *dev, struct vhost_virtqueue *vq, vhost_log_write(dev, guest_addr, len); remain -= len; guest_addr += len; - dst += len; + src += len; } } @@ -771,7 +771,7 @@ copy_mbuf_to_desc_mergeable(struct virtio_net *dev, struct vhost_virtqueue *vq, remain -= len; guest_addr += len; - dst += len; + src += len; } } else { PRINT_PACKET(dev, (uintptr_t)hdr_addr, -- 2.14.3