[PATCH net v1] net/mlx5e: Fix PTP TX SQ cleanup on metadata DB failure

Prathamesh Deshpande posted 1 patch 1 month, 1 week ago
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH net v1] net/mlx5e: Fix PTP TX SQ cleanup on metadata DB failure
Posted by Prathamesh Deshpande 1 month, 1 week ago
mlx5e_ptp_open_txqsq() creates the hardware SQ before allocating the PTP
traffic metadata database.

If mlx5e_ptp_alloc_traffic_db() fails, the error path frees the software
TX queue state but skips destroying the already-created hardware SQ.

Add a dedicated unwind label that destroys the SQ before freeing the TXQ
state.

Fixes: 1880bc4e4a96 ("net/mlx5e: Add TX port timestamp support")
Signed-off-by: Prathamesh Deshpande <prathameshdeshpande7@gmail.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c b/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
index 723f66a6bd63..45db2dd7408d 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
@@ -489,12 +489,14 @@ static int mlx5e_ptp_open_txqsq(struct mlx5e_ptp *c, u32 tisn,
 
 	err = mlx5e_ptp_alloc_traffic_db(ptpsq, dev_to_node(mlx5_core_dma_dev(c->mdev)));
 	if (err)
-		goto err_free_txqsq;
+		goto err_destroy_sq;
 
 	INIT_WORK(&ptpsq->report_unhealthy_work, mlx5e_ptpsq_unhealthy_work);
 
 	return 0;
 
+err_destroy_sq:
+	mlx5e_ptp_destroy_sq(c->mdev, txqsq->sqn);
 err_free_txqsq:
 	mlx5e_free_txqsq(txqsq);
 
-- 
2.43.0
Re: [PATCH net v1] net/mlx5e: Fix PTP TX SQ cleanup on metadata DB failure
Posted by Simon Horman 1 month ago
On Mon, May 04, 2026 at 11:30:05PM +0100, Prathamesh Deshpande wrote:
> mlx5e_ptp_open_txqsq() creates the hardware SQ before allocating the PTP
> traffic metadata database.
> 
> If mlx5e_ptp_alloc_traffic_db() fails, the error path frees the software
> TX queue state but skips destroying the already-created hardware SQ.
> 
> Add a dedicated unwind label that destroys the SQ before freeing the TXQ
> state.
> 
> Fixes: 1880bc4e4a96 ("net/mlx5e: Add TX port timestamp support")
> Signed-off-by: Prathamesh Deshpande <prathameshdeshpande7@gmail.com>

Reviewed-by: Simon Horman <horms@kernel.org>
Re: [PATCH net v1] net/mlx5e: Fix PTP TX SQ cleanup on metadata DB failure
Posted by Tariq Toukan 1 month, 1 week ago

On 05/05/2026 1:30, Prathamesh Deshpande wrote:
> mlx5e_ptp_open_txqsq() creates the hardware SQ before allocating the PTP
> traffic metadata database.
> 
> If mlx5e_ptp_alloc_traffic_db() fails, the error path frees the software
> TX queue state but skips destroying the already-created hardware SQ.
> 
> Add a dedicated unwind label that destroys the SQ before freeing the TXQ
> state.
> 
> Fixes: 1880bc4e4a96 ("net/mlx5e: Add TX port timestamp support")
> Signed-off-by: Prathamesh Deshpande <prathameshdeshpande7@gmail.com>
> ---
>   drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c b/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
> index 723f66a6bd63..45db2dd7408d 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
> @@ -489,12 +489,14 @@ static int mlx5e_ptp_open_txqsq(struct mlx5e_ptp *c, u32 tisn,
>   
>   	err = mlx5e_ptp_alloc_traffic_db(ptpsq, dev_to_node(mlx5_core_dma_dev(c->mdev)));
>   	if (err)
> -		goto err_free_txqsq;
> +		goto err_destroy_sq;
>   
>   	INIT_WORK(&ptpsq->report_unhealthy_work, mlx5e_ptpsq_unhealthy_work);
>   
>   	return 0;
>   
> +err_destroy_sq:
> +	mlx5e_ptp_destroy_sq(c->mdev, txqsq->sqn);
>   err_free_txqsq:
>   	mlx5e_free_txqsq(txqsq);
>   

Reviewed-by: Tariq Toukan <tariqt@nvidia.com>

Thanks.