diff options
author | Xavier Simonart <xavier.simonart@intel.com> | 2020-05-26 11:20:22 +0200 |
---|---|---|
committer | Xavier Simonart <xavier.simonart@intel.com> | 2020-05-29 23:46:29 +0200 |
commit | 4fa870ba4647271b11ae7927ead2696e13dad7e4 (patch) | |
tree | 2018e838cc17d403d99097cd3ff88a04d0d689f7 | |
parent | c871c361f9d69a93429ae385e7dbf21a46aa6857 (diff) |
Fix potential core dump when closing ports at exit
Change-Id: I45ea9741be1c552d8f13a7de027994c23995df69
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
-rw-r--r-- | VNFs/DPPD-PROX/prox_port_cfg.c | 11 | ||||
-rw-r--r-- | 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); } |