summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Simonart <xavier.simonart@intel.com>2020-05-26 11:20:22 +0200
committerXavier Simonart <xavier.simonart@intel.com>2020-05-29 23:46:29 +0200
commit4fa870ba4647271b11ae7927ead2696e13dad7e4 (patch)
tree2018e838cc17d403d99097cd3ff88a04d0d689f7
parentc871c361f9d69a93429ae385e7dbf21a46aa6857 (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.c11
-rw-r--r--VNFs/DPPD-PROX/run.c9
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 a4f3526..2e19d25 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 d568dba..c05f0a9 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);
}