From: Mohammed Hawari Date: Tue, 4 May 2021 08:15:32 +0000 (+0200) Subject: avf: fix simultaneous txq wrap and tx retry X-Git-Tag: v21.10-rc0~143 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=5a504b04fcac2a1ed246530cf6f82d17f77d5788;p=vpp.git avf: fix simultaneous txq wrap and tx retry Change-Id: Ic2b853cda98c3010d2abb5c7ada1b1f6c5bc9f74 Signed-off-by: Mohammed Hawari Type: fix Fixes: ca1812dbe714fc8e4de13f88df2d3b830d95a2c9 Ticket: VPP-1980 --- 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) {