From d4902ed31c63b002268e593536b13b84d4fdac9a Mon Sep 17 00:00:00 2001 From: Chengwen Feng Date: Fri, 23 Apr 2021 16:11:04 +0800 Subject: [PATCH] mbuf: check shared memory before dumping dynamic space Because mbuf dyn shared memory was allocated runtime, so it's necessary to check validity when dump mbuf dyn info. Also this patch adds an error logging when init shared memory fail. Fixes: 4958ca3a443a ("mbuf: support dynamic fields and flags") Cc: stable@dpdk.org Signed-off-by: Chengwen Feng Signed-off-by: Min Hu (Connor) Acked-by: Olivier Matz --- lib/mbuf/rte_mbuf_dyn.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/mbuf/rte_mbuf_dyn.c b/lib/mbuf/rte_mbuf_dyn.c index 7d5e942bf0..ca46eb279e 100644 --- a/lib/mbuf/rte_mbuf_dyn.c +++ b/lib/mbuf/rte_mbuf_dyn.c @@ -115,8 +115,10 @@ init_shared_mem(void) } else { mz = rte_memzone_lookup(RTE_MBUF_DYN_MZNAME); } - if (mz == NULL) + if (mz == NULL) { + RTE_LOG(ERR, MBUF, "Failed to get mbuf dyn shared memory\n"); return -1; + } shm = mz->addr; @@ -525,7 +527,11 @@ void rte_mbuf_dyn_dump(FILE *out) size_t i; rte_mcfg_tailq_write_lock(); - init_shared_mem(); + if (init_shared_mem() < 0) { + rte_mcfg_tailq_write_unlock(); + return; + } + fprintf(out, "Reserved fields:\n"); mbuf_dynfield_list = RTE_TAILQ_CAST( mbuf_dynfield_tailq.head, mbuf_dynfield_list); -- 2.20.1