[dpdk-stable] [PATCH 3/3] net/virtio: add missing read barrier for packed dequeue
Ilya Maximets
i.maximets at samsung.com
Thu Jan 24 17:59:02 CET 2019
Read barrier is required between reading the flags (desc_is_used)
and the content of descriptor to ensure the ordering.
Otherwise, speculative read of desc.id could be reordered with
reading of the desc.flags.
Fixes: a76290c8f1cf ("net/virtio: implement Rx path for packed queues")
Cc: stable at dpdk.org
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
---
drivers/net/virtio/virtio_rxtx.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
index 5ffed6a51..4c701c514 100644
--- a/drivers/net/virtio/virtio_rxtx.c
+++ b/drivers/net/virtio/virtio_rxtx.c
@@ -124,6 +124,7 @@ virtqueue_dequeue_burst_rx_packed(struct virtqueue *vq,
used_idx = vq->vq_used_cons_idx;
if (!desc_is_used(&desc[used_idx], vq))
return i;
+ virtio_rmb(vq->hw->weak_barriers);
len[i] = desc[used_idx].len;
id = desc[used_idx].id;
cookie = (struct rte_mbuf *)vq->vq_descx[id].cookie;
--
2.17.1
More information about the stable
mailing list