net/virtio: add missing read barrier for packed dequeue
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: a76290c8f1
("net/virtio: implement Rx path for packed queues")
Cc: stable@dpdk.org
Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
This commit is contained in:
parent
23d25f1a40
commit
4b058fdd27
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user