From daeb7c7f412a4d24d2d9a7d9f1344ef2338b12f4 Mon Sep 17 00:00:00 2001 From: Olivier Matz Date: Wed, 3 Feb 2021 10:01:01 +0100 Subject: [PATCH] mempool: fix panic on dump or audit When doing a mempool dump or an audit, the application can panic because the length of the cache is greater than the flush threshold, which is seen as a fatal error. But this can temporarily happen when the mempool is in use. Fix the panic condition to abort only when the cache length is greater than the array. Fixes: ea5dd2744b90 ("mempool: cache optimisations") Cc: stable@dpdk.org Signed-off-by: Olivier Matz Acked-by: Andrew Rybchenko --- lib/librte_mempool/rte_mempool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c index b9f3fbd614..afb1239c8d 100644 --- a/lib/librte_mempool/rte_mempool.c +++ b/lib/librte_mempool/rte_mempool.c @@ -1167,7 +1167,7 @@ mempool_audit_cache(const struct rte_mempool *mp) for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) { const struct rte_mempool_cache *cache; cache = &mp->local_cache[lcore_id]; - if (cache->len > cache->flushthresh) { + if (cache->len > RTE_DIM(cache->objs)) { RTE_LOG(CRIT, MEMPOOL, "badness on cache[%u]\n", lcore_id); rte_panic("MEMPOOL: invalid cache len\n");