net/mlx5: fix Rx queue release of resources

Message ID 0bf488cf0466b23710a4cf2cd68943a3354de6ef.1563896047.git.dekelp@mellanox.com (mailing list archive)
State Superseded, archived
Delegated to: Raslan Darawsheh
Headers
Series net/mlx5: fix Rx queue release of resources |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS

Commit Message

Dekel Peled July 23, 2019, 3:34 p.m. UTC
  Function rxq_release_rq_resources() releases resources of RQ object
created by DevX API.

This patch updates this function to properly clear the released
resources, to avoid repeated release of the same resource.

Fixes: 69abf7b1db4a ("net/mlx5: create advanced RxQ using new API")

Signed-off-by: Dekel Peled <dekelp@mellanox.com>
---
 drivers/net/mlx5/mlx5_rxq.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Comments

Slava Ovsiienko July 24, 2019, 5:03 a.m. UTC | #1
> -----Original Message-----
> From: Dekel Peled <dekelp@mellanox.com>
> Sent: Tuesday, July 23, 2019 18:35
> To: Yongseok Koh <yskoh@mellanox.com>; Slava Ovsiienko
> <viacheslavo@mellanox.com>; Shahaf Shuler <shahafs@mellanox.com>
> Cc: Ori Kam <orika@mellanox.com>; dev@dpdk.org
> Subject: [PATCH] net/mlx5: fix Rx queue release of resources
> 
> Function rxq_release_rq_resources() releases resources of RQ object created
> by DevX API.
> 
> This patch updates this function to properly clear the released resources, to
> avoid repeated release of the same resource.
> 
> Fixes: 69abf7b1db4a ("net/mlx5: create advanced RxQ using new API")
> 
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>

> ---
>  drivers/net/mlx5/mlx5_rxq.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index
> c9df8b0..441f158 100644
> --- a/drivers/net/mlx5/mlx5_rxq.c
> +++ b/drivers/net/mlx5/mlx5_rxq.c
> @@ -573,8 +573,10 @@
>  		rte_free((void *)(uintptr_t)rxq_ctrl->rxq.wqes);
>  		rxq_ctrl->rxq.wqes = NULL;
>  	}
> -	if (rxq_ctrl->wq_umem)
> +	if (rxq_ctrl->wq_umem) {
>  		mlx5_glue->devx_umem_dereg(rxq_ctrl->wq_umem);
> +		rxq_ctrl->wq_umem = NULL;
> +	}
>  }
> 
>  /**
> --
> 1.8.3.1
  
Raslan Darawsheh July 24, 2019, 7:53 a.m. UTC | #2
Hi Dekel,

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Dekel Peled
> Sent: Tuesday, July 23, 2019 6:35 PM
> To: Yongseok Koh <yskoh@mellanox.com>; Slava Ovsiienko
> <viacheslavo@mellanox.com>; Shahaf Shuler <shahafs@mellanox.com>
> Cc: Ori Kam <orika@mellanox.com>; dev@dpdk.org
> Subject: [dpdk-dev] [PATCH] net/mlx5: fix Rx queue release of resources
> 
> Function rxq_release_rq_resources() releases resources of RQ object
> created by DevX API.
> 
> This patch updates this function to properly clear the released resources, to
> avoid repeated release of the same resource.
> 
> Fixes: 69abf7b1db4a ("net/mlx5: create advanced RxQ using new API")
> 

Wrong 'Fixes' reference:
        Fixes: 69abf7b1db4a ("net/mlx5: create advanced RxQ using new API")

> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> ---
>  drivers/net/mlx5/mlx5_rxq.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
> index c9df8b0..441f158 100644
> --- a/drivers/net/mlx5/mlx5_rxq.c
> +++ b/drivers/net/mlx5/mlx5_rxq.c
> @@ -573,8 +573,10 @@
>  		rte_free((void *)(uintptr_t)rxq_ctrl->rxq.wqes);
>  		rxq_ctrl->rxq.wqes = NULL;
>  	}
> -	if (rxq_ctrl->wq_umem)
> +	if (rxq_ctrl->wq_umem) {
>  		mlx5_glue->devx_umem_dereg(rxq_ctrl->wq_umem);
> +		rxq_ctrl->wq_umem = NULL;
> +	}
>  }
> 
>  /**
> --
> 1.8.3.1

Kindest regards,
Raslan Darawsheh
  

Patch

diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
index c9df8b0..441f158 100644
--- a/drivers/net/mlx5/mlx5_rxq.c
+++ b/drivers/net/mlx5/mlx5_rxq.c
@@ -573,8 +573,10 @@ 
 		rte_free((void *)(uintptr_t)rxq_ctrl->rxq.wqes);
 		rxq_ctrl->rxq.wqes = NULL;
 	}
-	if (rxq_ctrl->wq_umem)
+	if (rxq_ctrl->wq_umem) {
 		mlx5_glue->devx_umem_dereg(rxq_ctrl->wq_umem);
+		rxq_ctrl->wq_umem = NULL;
+	}
 }
 
 /**