aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenoît Ganne <bganne@cisco.com>2024-04-08 16:49:06 +0200
committerDamjan Marion <dmarion@0xa5.net>2024-04-10 14:04:51 +0000
commit50e7ea7b14863a155a359fb192df9a23883a3391 (patch)
tree5f7b6e169744fe0fdd3ce10c69ae1e07e41255d6
parentf521df72005cc8e995e908175392b183083568c8 (diff)
vlib: fix vlib_buffer_free_inline() AVX-512 overflow
'queue' is declared on the stack and must be big enough to handle queue_size + max processed elements per loops. When AVX-512 was added, this additional max was not increased from 4 to 8 accordingly. Type: fix Fixes: 767a9ab4b1 Change-Id: I15f2f930fc316f92da2e4642f41852d856c06a48 Signed-off-by: Benoît Ganne <bganne@cisco.com>
-rw-r--r--src/vlib/buffer_funcs.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/vlib/buffer_funcs.h b/src/vlib/buffer_funcs.h
index b3861a2f695..010289ce2be 100644
--- a/src/vlib/buffer_funcs.h
+++ b/src/vlib/buffer_funcs.h
@@ -777,7 +777,7 @@ vlib_buffer_free_inline (vlib_main_t * vm, u32 * buffers, u32 n_buffers,
const int queue_size = 128;
vlib_buffer_pool_t *bp = 0;
u8 buffer_pool_index = ~0;
- u32 n_queue = 0, queue[queue_size + 4];
+ u32 n_queue = 0, queue[queue_size + 8];
vlib_buffer_template_t bt = {};
#if defined(CLIB_HAVE_VEC128)
vlib_buffer_t bpi_mask = {.buffer_pool_index = ~0 };