mem: prevent preallocated pages from being freed
[dpdk.git] / lib / librte_eal / common / rte_malloc.c
index c6d3e57..b51a6d1 100644 (file)
@@ -40,10 +40,6 @@ void *
 rte_malloc_socket(const char *type, size_t size, unsigned int align,
                int socket_arg)
 {
-       struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
-       int socket, i;
-       void *ret;
-
        /* return NULL if size is 0 or alignment is not power-of-2 */
        if (size == 0 || (align && !rte_is_power_of_2(align)))
                return NULL;
@@ -51,33 +47,12 @@ rte_malloc_socket(const char *type, size_t size, unsigned int align,
        if (!rte_eal_has_hugepages())
                socket_arg = SOCKET_ID_ANY;
 
-       if (socket_arg == SOCKET_ID_ANY)
-               socket = malloc_get_numa_socket();
-       else
-               socket = socket_arg;
-
        /* Check socket parameter */
-       if (socket >= RTE_MAX_NUMA_NODES)
+       if (socket_arg >= RTE_MAX_NUMA_NODES)
                return NULL;
 
-       ret = malloc_heap_alloc(&mcfg->malloc_heaps[socket], type,
-                               size, 0, align == 0 ? 1 : align, 0, false);
-       if (ret != NULL || socket_arg != SOCKET_ID_ANY)
-               return ret;
-
-       /* try other heaps */
-       for (i = 0; i < RTE_MAX_NUMA_NODES; i++) {
-               /* we already tried this one */
-               if (i == socket)
-                       continue;
-
-               ret = malloc_heap_alloc(&mcfg->malloc_heaps[i], type,
-                               size, 0, align == 0 ? 1 : align, 0, false);
-               if (ret != NULL)
-                       return ret;
-       }
-
-       return NULL;
+       return malloc_heap_alloc(type, size, socket_arg, 0,
+                       align == 0 ? 1 : align, 0, false);
 }
 
 /*