From: Graham Whyte <grwh...@microsoft.com> reinitialize the solib link list and clean the globals holding state for parsing.
Signed-off-by: Sinan Kaya <ok...@kernel.org> Signed-off by: Graham Whyte <graham.wh...@microsoft.com> --- lib/eal/common/eal_common_options.c | 7 +++++++ lib/eal/linux/eal.c | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/eal/common/eal_common_options.c b/lib/eal/common/eal_common_options.c index 2d6535781b..b58df1bc5f 100644 --- a/lib/eal/common/eal_common_options.c +++ b/lib/eal/common/eal_common_options.c @@ -1983,6 +1983,13 @@ compute_ctrl_threads_cpuset(struct internal_config *internal_cfg) memcpy(cpuset, &lcore_config[rte_get_main_lcore()].cpuset, sizeof(*cpuset)); } + + // Reinitialize solib_list + TAILQ_INIT(&solib_list); + + master_lcore_parsed = 0; + mem_parsed = 0; + core_parsed = 0; } int diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c index 8c118d0d9f..5fd81d71cb 100644 --- a/lib/eal/linux/eal.c +++ b/lib/eal/linux/eal.c @@ -78,6 +78,8 @@ struct lcore_config lcore_config[RTE_MAX_LCORE]; int rte_cycles_vmware_tsc_map; +static uint32_t run_once = 0; + int eal_clean_runtime_dir(void) { @@ -504,6 +506,7 @@ eal_parse_socket_arg(char *strval, volatile uint64_t *socket_arg) socket_arg[i] = val; } + __atomic_store_n(&run_once, 0, __ATOMIC_RELAXED); return 0; } @@ -960,7 +963,6 @@ int rte_eal_init(int argc, char **argv) { int i, fctret, ret; - static uint32_t run_once; uint32_t has_run = 0; const char *p; static char logid[PATH_MAX]; -- 2.25.1