]> git.droids-corp.org - dpdk.git/commitdiff
mbuf: check shared memory before dumping dynamic space
authorChengwen Feng <fengchengwen@huawei.com>
Fri, 23 Apr 2021 08:11:04 +0000 (16:11 +0800)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 4 May 2021 17:49:44 +0000 (19:49 +0200)
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 <fengchengwen@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
lib/mbuf/rte_mbuf_dyn.c

index 7d5e942bf0d8c72cc30f6b5094fa44a608f998a8..ca46eb279ea9354e1291a5a047a903c5a8bd2c95 100644 (file)
@@ -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);