malloc: fix DMA mask check
authorAlejandro Lucero <alejandro.lucero@netronome.com>
Thu, 1 Nov 2018 19:53:24 +0000 (19:53 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 5 Nov 2018 00:01:43 +0000 (01:01 +0100)
The param needs to be the maskbits and not the mask.

Fixes: 223b7f1d5ef6 ("mem: add function for checking memseg IOVA")

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
lib/librte_eal/common/malloc_heap.c

index 1973b6e..d1019e3 100644 (file)
@@ -294,7 +294,6 @@ alloc_pages_on_heap(struct malloc_heap *heap, uint64_t pg_sz, size_t elt_size,
        size_t alloc_sz;
        int allocd_pages;
        void *ret, *map_addr;
-       uint64_t mask;
 
        alloc_sz = (size_t)pg_sz * n_segs;
 
@@ -323,8 +322,7 @@ alloc_pages_on_heap(struct malloc_heap *heap, uint64_t pg_sz, size_t elt_size,
        }
 
        if (mcfg->dma_maskbits) {
-               mask = ~((1ULL << mcfg->dma_maskbits) - 1);
-               if (rte_eal_check_dma_mask(mask)) {
+               if (rte_eal_check_dma_mask(mcfg->dma_maskbits)) {
                        RTE_LOG(ERR, EAL,
                                "%s(): couldn't allocate memory due to DMA mask\n",
                                __func__);