[v1,3/7] eal_memzone: bail out on initialized

Message ID 20230815013826.1288972-4-okaya@kernel.org (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series support reinit flow |

Checks

Context Check Description
ci/checkpatch warning coding style issues

Commit Message

Sinan Kaya Aug. 15, 2023, 1:38 a.m. UTC
  From: Sinan Kaya <okaya@kernel.org>

Initialize memzone once and bail out if someone calls init
multiple times.

Signed-off-by: Sinan Kaya <okaya@kernel.org>
---
 lib/eal/common/eal_common_memzone.c | 6 ++++++
 1 file changed, 6 insertions(+)
  

Comments

Stephen Hemminger Aug. 15, 2023, 2:22 a.m. UTC | #1
On Mon, 14 Aug 2023 21:38:22 -0400
okaya@kernel.org wrote:

> +	static int initialized = 0;
>  	int ret = 0;
>  
> +	if (initialized)
> +		return 0;
> +
>  	/* get pointer to global configuration */
>  	mcfg = rte_eal_get_configuration()->mem_config;
>  
> @@ -415,6 +419,8 @@ rte_eal_memzone_init(void)
>  
>  	rte_rwlock_write_unlock(&mcfg->mlock);
>  
> +	initialized = 1;
> +
>  	return ret;
>  }

Use a bool for this.
  

Patch

diff --git a/lib/eal/common/eal_common_memzone.c b/lib/eal/common/eal_common_memzone.c
index 930fee5fdc..c76f298267 100644
--- a/lib/eal/common/eal_common_memzone.c
+++ b/lib/eal/common/eal_common_memzone.c
@@ -395,8 +395,12 @@  int
 rte_eal_memzone_init(void)
 {
 	struct rte_mem_config *mcfg;
+	static int initialized = 0;
 	int ret = 0;
 
+	if (initialized)
+		return 0;
+
 	/* get pointer to global configuration */
 	mcfg = rte_eal_get_configuration()->mem_config;
 
@@ -415,6 +419,8 @@  rte_eal_memzone_init(void)
 
 	rte_rwlock_write_unlock(&mcfg->mlock);
 
+	initialized = 1;
+
 	return ret;
 }