[dpdk-dev,2/2] net/mlx4: fix alignment of Memory Region

Message ID 20180417183914.10175-2-yskoh@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Shahaf Shuler
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Yongseok Koh April 17, 2018, 6:39 p.m. UTC
  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")
Cc: Anatoly Burakov <anatoly.burakov@intel.com>

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
---
 drivers/net/mlx4/mlx4_mr.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
  

Comments

Adrien Mazarguil April 18, 2018, 8:05 a.m. UTC | #1
On Tue, Apr 17, 2018 at 11:39:14AM -0700, Yongseok Koh wrote:
> 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")
> Cc: Anatoly Burakov <anatoly.burakov@intel.com>
> 
> Signed-off-by: Yongseok Koh <yskoh@mellanox.com>

Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>

One nit in case another version is sent, please remove the unnecessary empty
line in both patches, thanks.

> ---
>  drivers/net/mlx4/mlx4_mr.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/net/mlx4/mlx4_mr.c b/drivers/net/mlx4/mlx4_mr.c
> index e69b43322..f2dcbcb76 100644
> --- a/drivers/net/mlx4/mlx4_mr.c
> +++ b/drivers/net/mlx4/mlx4_mr.c
> @@ -144,9 +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,
> -- 
> 2.11.0
>
  

Patch

diff --git a/drivers/net/mlx4/mlx4_mr.c b/drivers/net/mlx4/mlx4_mr.c
index e69b43322..f2dcbcb76 100644
--- a/drivers/net/mlx4/mlx4_mr.c
+++ b/drivers/net/mlx4/mlx4_mr.c
@@ -144,9 +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,