net/mlx5: fix alignment of memory region
authorYongseok Koh <yskoh@mellanox.com>
Tue, 17 Apr 2018 18:39:13 +0000 (11:39 -0700)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 27 Apr 2018 14:54:56 +0000 (15:54 +0100)
The memory region is [start, end), so if the memseg of 'end' isn't
allocated yet, the returned memseg will have zero entries and this will
make 'end' zero (nil).

Fixes: 718e35999c96 ("net/mlx5: use virt2memseg instead of iteration")

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
drivers/net/mlx5/mlx5_mr.c

index fdf7b3e..1b4c7ec 100644 (file)
@@ -265,10 +265,7 @@ mlx5_mr_new(struct rte_eth_dev *dev, struct rte_mempool *mp)
        ms = rte_mem_virt2memseg((void *)start, NULL);
        if (ms != NULL)
                start = RTE_ALIGN_FLOOR(start, ms->hugepage_sz);
-       ms = rte_mem_virt2memseg((void *)end, NULL);
-       if (ms != NULL)
-               end = RTE_ALIGN_CEIL(end, ms->hugepage_sz);
-
+       end = RTE_ALIGN_CEIL(end, ms->hugepage_sz);
        DRV_LOG(DEBUG,
                "port %u mempool %p using start=%p end=%p size=%zu for memory"
                " region",