From 4fa870ba4647271b11ae7927ead2696e13dad7e4 Mon Sep 17 00:00:00 2001 From: Xavier Simonart Date: Tue, 26 May 2020 11:20:22 +0200 Subject: Fix potential core dump when closing ports at exit Change-Id: I45ea9741be1c552d8f13a7de027994c23995df69 Signed-off-by: Xavier Simonart --- VNFs/DPPD-PROX/prox_port_cfg.c | 11 +++++++++++ VNFs/DPPD-PROX/run.c | 9 --------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/VNFs/DPPD-PROX/prox_port_cfg.c b/VNFs/DPPD-PROX/prox_port_cfg.c index a4f35260..2e19d25d 100644 --- a/VNFs/DPPD-PROX/prox_port_cfg.c +++ b/VNFs/DPPD-PROX/prox_port_cfg.c @@ -45,6 +45,7 @@ #include "stats_irq.h" #include "prox_compat.h" #include "rte_ethdev.h" +#include "lconf.h" struct prox_port_cfg prox_port_cfg[PROX_MAX_PORTS]; @@ -857,6 +858,16 @@ void close_ports_atexit(void) plog_info("Closing port %u\n", portid); rte_eth_dev_close(portid); } + + struct lcore_cfg *lconf = NULL; + struct task_args *targ; + while (core_targ_next(&lconf, &targ, 0) == 0) { + if (targ->pool) { + rte_mempool_free(targ->pool); + plog_info("freeing pool %p\n", targ->pool); + targ->pool = NULL; + } + } } void init_port_addr(void) diff --git a/VNFs/DPPD-PROX/run.c b/VNFs/DPPD-PROX/run.c index d568dba4..c05f0a9f 100644 --- a/VNFs/DPPD-PROX/run.c +++ b/VNFs/DPPD-PROX/run.c @@ -277,15 +277,6 @@ void __attribute__((noreturn)) run(uint32_t flags) stop_core_all(-1); } - struct lcore_cfg *lconf = NULL; - struct task_args *targ; - while (core_targ_next(&lconf, &targ, 0) == 0) { - if (targ->pool) { - rte_mempool_free(targ->pool); - plog_info("freeing pool %p\n", targ->pool); - targ->pool = NULL; - } - } if (prox_cfg.logbuf) { file_print(prox_cfg.logbuf); } -- cgit 1.2.3-korg