Patchwork [dpdk-dev,v2] eal: fix unlock in rte_eal_memzone_init

login
register
mail settings
Submitter Gao Feng
Date Dec. 7, 2018, 1:20 a.m.
Message ID <1544145608-828-1-git-send-email-gfree.wind@vip.163.com>
Download mbox | patch
Permalink /patch/674867/
State New
Headers show

Comments

Gao Feng - Dec. 7, 2018, 1:20 a.m.
The RTE_PROC_PRIMARY error handler lost the unlock statement in the
current codes. Now unlock and return in one place to fix it.

Fixes: 49df3db84883 ("memzone: replace memzone array with fbarray")
Cc: stable@dpdk.org

Signed-off-by: Gao Feng <davidfgao@tencent.com>
---
 v2: Unlock and return in one place, per Anatoly

 lib/librte_eal/common/eal_common_memzone.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
Burakov, Anatoly - Dec. 7, 2018, 8:57 a.m.
On 07-Dec-18 1:20 AM, Gao Feng wrote:
> The RTE_PROC_PRIMARY error handler lost the unlock statement in the
> current codes. Now unlock and return in one place to fix it.
> 
> Fixes: 49df3db84883 ("memzone: replace memzone array with fbarray")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Gao Feng <davidfgao@tencent.com>
> ---
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>

Patch

diff --git a/lib/librte_eal/common/eal_common_memzone.c b/lib/librte_eal/common/eal_common_memzone.c
index b7081af..664df5b 100644
--- a/lib/librte_eal/common/eal_common_memzone.c
+++ b/lib/librte_eal/common/eal_common_memzone.c
@@ -365,6 +365,7 @@  int
 rte_eal_memzone_init(void)
 {
 	struct rte_mem_config *mcfg;
+	int ret = 0;
 
 	/* get pointer to global configuration */
 	mcfg = rte_eal_get_configuration()->mem_config;
@@ -375,17 +376,16 @@  rte_eal_memzone_init(void)
 			rte_fbarray_init(&mcfg->memzones, "memzone",
 			RTE_MAX_MEMZONE, sizeof(struct rte_memzone))) {
 		RTE_LOG(ERR, EAL, "Cannot allocate memzone list\n");
-		return -1;
+		ret = -1;
 	} else if (rte_eal_process_type() == RTE_PROC_SECONDARY &&
 			rte_fbarray_attach(&mcfg->memzones)) {
 		RTE_LOG(ERR, EAL, "Cannot attach to memzone list\n");
-		rte_rwlock_write_unlock(&mcfg->mlock);
-		return -1;
+		ret = -1;
 	}
 
 	rte_rwlock_write_unlock(&mcfg->mlock);
 
-	return 0;
+	return ret;
 }
 
 /* Walk all reserved memory zones */