aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMohammed Hawari <mohammed@hawari.fr>2021-05-04 10:15:32 +0200
committerMohammed Hawari <mohammed@hawari.fr>2021-05-04 10:15:32 +0200
commit5a504b04fcac2a1ed246530cf6f82d17f77d5788 (patch)
tree5223a01b533b6a6e156cdcf7e7ec7ac43380c4d5
parentf5a45680ee1c9c586ab2b037e3d71354789e4403 (diff)
avf: fix simultaneous txq wrap and tx retry
Change-Id: Ic2b853cda98c3010d2abb5c7ada1b1f6c5bc9f74 Signed-off-by: Mohammed Hawari <mohammed@hawari.fr> Type: fix Fixes: ca1812dbe714fc8e4de13f88df2d3b830d95a2c9 Ticket: VPP-1980
-rw-r--r--src/plugins/avf/output.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/plugins/avf/output.c b/src/plugins/avf/output.c
index 3c65fb02ce8..e16d79dfc6d 100644
--- a/src/plugins/avf/output.c
+++ b/src/plugins/avf/output.c
@@ -376,7 +376,7 @@ VNET_DEVICE_CLASS_TX_FN (avf_device_class) (vlib_main_t * vm,
u32 thread_index = vm->thread_index;
u8 qid = thread_index;
avf_txq_t *txq = vec_elt_at_index (ad->txqs, qid % ad->num_queue_pairs);
- u16 next = txq->next;
+ u16 next;
u16 mask = txq->size - 1;
u32 *buffers = vlib_frame_vector_args (frame);
u16 n_enq, n_left, n_desc, *slot;
@@ -387,6 +387,7 @@ VNET_DEVICE_CLASS_TX_FN (avf_device_class) (vlib_main_t * vm,
n_left = frame->n_vectors;
retry:
+ next = txq->next;
/* release consumed bufs */
if (txq->n_enqueued)
{