memzone: fix race condition on alloc failure
authorAnatoly Burakov <anatoly.burakov@intel.com>
Thu, 3 May 2018 08:59:28 +0000 (09:59 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Sun, 13 May 2018 23:37:47 +0000 (01:37 +0200)
Deallocation used the wrong function, which could have resulted in
race conditions because the function does not use locks internally.

Fixes: 1403f87d4fb8 ("malloc: enable memory hotplug support")

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
lib/librte_eal/common/eal_common_memzone.c

index bce3321..28f39e2 100644 (file)
@@ -205,7 +205,7 @@ memzone_reserve_aligned_thread_unsafe(const char *name, size_t len,
 
        if (mz == NULL) {
                RTE_LOG(ERR, EAL, "%s(): Cannot find free memzone\n", __func__);
-               malloc_elem_free(elem);
+               malloc_heap_free(elem);
                rte_errno = ENOSPC;
                return NULL;
        }