]> git.droids-corp.org - dpdk.git/commitdiff
virtio: fix descriptors pointing to the same buffer
authorHuawei Xie <huawei.xie@intel.com>
Thu, 10 Dec 2015 16:07:32 +0000 (00:07 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 16 Mar 2016 17:52:18 +0000 (18:52 +0100)
The virtio_net_hdr desc all pointed to the same buffer. It doesn't cause
issue because in the simple TX mode we don't use the header. This patch
makes the header desc point to different buffer.

Fixes: b4ae9c505f2e ("virtio: optimize ring layout")
Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
drivers/net/virtio/virtio_rxtx.c

index e96352cedb591b81ed78256c72453e5e0f60966a..a7a58be630dc1061ea128dde116f78d23d212c5f 100644 (file)
@@ -353,7 +353,7 @@ virtio_dev_vring_start(struct virtqueue *vq, int queue_type)
                                vq->vq_ring.desc[i + mid_idx].next = i;
                                vq->vq_ring.desc[i + mid_idx].addr =
                                        vq->virtio_net_hdr_mem +
-                                               mid_idx * vq->hw->vtnet_hdr_size;
+                                               i * vq->hw->vtnet_hdr_size;
                                vq->vq_ring.desc[i + mid_idx].len =
                                        vq->hw->vtnet_hdr_size;
                                vq->vq_ring.desc[i + mid_idx].flags =