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 <grwh...@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..e15e8ced5d 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);
+
+       main_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..385a3427d4 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;
+
 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

Reply via email to