On 06-Dec-18 12:47 AM, gfree.w...@vip.163.com wrote:
From: Gao Feng <davidf...@tencent.com>

The RTE_PROC_PRIMARY error handler lost the unlock statement in the
current codes. Now fix it.

Signed-off-by: Gao Feng <davidf...@tencent.com>

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

---
  lib/librte_eal/common/eal_common_memzone.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/lib/librte_eal/common/eal_common_memzone.c 
b/lib/librte_eal/common/eal_common_memzone.c
index b7081af..649cad4 100644
--- a/lib/librte_eal/common/eal_common_memzone.c
+++ b/lib/librte_eal/common/eal_common_memzone.c
@@ -375,6 +375,7 @@
                        rte_fbarray_init(&mcfg->memzones, "memzone",
                        RTE_MAX_MEMZONE, sizeof(struct rte_memzone))) {
                RTE_LOG(ERR, EAL, "Cannot allocate memzone list\n");
+               rte_rwlock_write_unlock(&mcfg->mlock);
                return -1;
        } else if (rte_eal_process_type() == RTE_PROC_SECONDARY &&
                        rte_fbarray_attach(&mcfg->memzones)) {


Acked-by: Anatoly Burakov <anatoly.bura...@intel.com>

Although i would probably remove both unlocks and instead save and return a value, so that unlock happens in one place. But this is OK too.

--
Thanks,
Anatoly

Reply via email to