From: Sinan Kaya <ok...@kernel.org> We want to be able to call rte_eal_init() and rte_eal_cleanup() APIs back to back for maintanance reasons.
Here is a summary of the code we have seen so far: 1. some code support getting called multiple times by keeping a static variable. 2. some code initializes once but never clean up after them and don't have a cleanup API. 3. some code assumes that they only get called once during the lifecycle of the process. Most changes in this patch center around following the #1 design principle. Graham Whyte (1): eal: fixes for re-initialization issues Sinan Kaya (6): tailq: skip init if already initialized eal_memzone: bail out on initialized memseg: init once eal_memory: skip initialization eal_interrupts: don't reinitialize threads eal: initialize worker threads once lib/eal/common/eal_common_memory.c | 5 ++ lib/eal/common/eal_common_memzone.c | 7 +++ lib/eal/common/eal_common_options.c | 7 +++ lib/eal/common/eal_common_tailqs.c | 20 +++++--- lib/eal/common/malloc_heap.c | 7 +++ lib/eal/linux/eal.c | 72 ++++++++++++++++------------- lib/eal/linux/eal_interrupts.c | 7 +++ lib/eal/linux/eal_memory.c | 12 ++++- 8 files changed, 96 insertions(+), 41 deletions(-) -- 2.25.1