diff options
author | Mohammed Hawari <mohammed@hawari.fr> | 2021-05-04 10:15:32 +0200 |
---|---|---|
committer | Mohammed Hawari <mohammed@hawari.fr> | 2021-05-04 10:15:32 +0200 |
commit | 5a504b04fcac2a1ed246530cf6f82d17f77d5788 (patch) | |
tree | 5223a01b533b6a6e156cdcf7e7ec7ac43380c4d5 /src/plugins/avf/output.c | |
parent | f5a45680ee1c9c586ab2b037e3d71354789e4403 (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
Diffstat (limited to 'src/plugins/avf/output.c')
-rw-r--r-- | src/plugins/avf/output.c | 3 |
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) { |