[PATCH net-next] net/mlx5: Fix an IS_ERR() vs NULL bug in esw_qos_move_node()

Dan Carpenter posted 1 patch 2 months, 3 weeks ago
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
[PATCH net-next] net/mlx5: Fix an IS_ERR() vs NULL bug in esw_qos_move_node()
Posted by Dan Carpenter 2 months, 3 weeks ago
The __esw_qos_alloc_node() function returns NULL on error.  It doesn't
return error pointers.  Update the error checking to match.

Fixes: 96619c485fa6 ("net/mlx5: Add support for setting tc-bw on nodes")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
---
 drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
index e1cef8dd3b4d..91d863c8c152 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
@@ -1405,9 +1405,10 @@ esw_qos_move_node(struct mlx5_esw_sched_node *curr_node)
 
 	new_node = __esw_qos_alloc_node(curr_node->esw, curr_node->ix,
 					curr_node->type, NULL);
-	if (!IS_ERR(new_node))
-		esw_qos_nodes_set_parent(&curr_node->children, new_node);
+	if (!new_node)
+		return ERR_PTR(-ENOMEM);
 
+	esw_qos_nodes_set_parent(&curr_node->children, new_node);
 	return new_node;
 }
 
-- 
2.47.2
Re: [PATCH net-next] net/mlx5: Fix an IS_ERR() vs NULL bug in esw_qos_move_node()
Posted by Tariq Toukan 2 months, 3 weeks ago

On 16/07/2025 2:01, Dan Carpenter wrote:
> The __esw_qos_alloc_node() function returns NULL on error.  It doesn't
> return error pointers.  Update the error checking to match.
> 
> Fixes: 96619c485fa6 ("net/mlx5: Add support for setting tc-bw on nodes")
> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
> ---
>   drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
> index e1cef8dd3b4d..91d863c8c152 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
> @@ -1405,9 +1405,10 @@ esw_qos_move_node(struct mlx5_esw_sched_node *curr_node)
>   
>   	new_node = __esw_qos_alloc_node(curr_node->esw, curr_node->ix,
>   					curr_node->type, NULL);
> -	if (!IS_ERR(new_node))
> -		esw_qos_nodes_set_parent(&curr_node->children, new_node);
> +	if (!new_node)
> +		return ERR_PTR(-ENOMEM);
>   
> +	esw_qos_nodes_set_parent(&curr_node->children, new_node);
>   	return new_node;
>   }
>   

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

Thanks.