memzone: fix unlock on initialization failure
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>
This commit is contained in:
parent
9cea8774cf
commit
cc80353223
@ -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 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user