From: Yongseok Koh <yskoh@mellanox.com>
Date: Tue, 17 Apr 2018 18:39:14 +0000 (-0700)
Subject: net/mlx4: fix alignment of memory region
X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=96525b9e193139d11cabaaa6f27801bc636a447a;p=dpdk.git

net/mlx4: fix alignment of memory region

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: c2fe5823224a ("net/mlx4: use virt2memseg instead of iteration")

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
---

diff --git a/drivers/net/mlx4/mlx4_mr.c b/drivers/net/mlx4/mlx4_mr.c
index e69b433228..8d5a6741dd 100644
--- a/drivers/net/mlx4/mlx4_mr.c
+++ b/drivers/net/mlx4/mlx4_mr.c
@@ -144,10 +144,7 @@ mlx4_mr_get(struct priv *priv, 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);
 	DEBUG("mempool %p using start=%p end=%p size=%zu for MR",
 	      (void *)mp, (void *)start, (void *)end,
 	      (size_t)(end - start));