version: 18.05-rc3
[dpdk.git] / lib / librte_eal / common / eal_common_memzone.c
index bce3321..faa3b06 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;
        }
@@ -213,7 +213,8 @@ memzone_reserve_aligned_thread_unsafe(const char *name, size_t len,
        snprintf(mz->name, sizeof(mz->name), "%s", name);
        mz->iova = rte_malloc_virt2iova(mz_addr);
        mz->addr = mz_addr;
-       mz->len = (requested_len == 0 ? elem->size : requested_len);
+       mz->len = (requested_len == 0 ?
+                       (elem->size - MALLOC_ELEM_OVERHEAD) : requested_len);
        mz->hugepage_sz = elem->msl->page_sz;
        mz->socket_id = elem->msl->socket_id;
        mz->flags = 0;