diff mbox series

net/mlx5: handle errors in mlx5_chains_create_table()

Message ID 20250304080323.2237-1-vulab@iscas.ac.cn (mailing list archive)
State Superseded
Headers show
Series net/mlx5: handle errors in mlx5_chains_create_table() | expand

Commit Message

Wentao Liang March 4, 2025, 8:03 a.m. UTC
Add error handling for mlx5_get_fdb_sub_ns() and
mlx5_get_flow_namespace() failures in mlx5_chains_create_table().
Log error message with  mlx5_core_warn() to prevent silent failures
and return immediately to prevent null pointer dereference of ns.

Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
---
 drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Tariq Toukan March 5, 2025, 7:12 p.m. UTC | #1
On 04/03/2025 10:03, Wentao Liang wrote:
> Add error handling for mlx5_get_fdb_sub_ns() and
> mlx5_get_flow_namespace() failures in mlx5_chains_create_table().
> Log error message with  mlx5_core_warn() to prevent silent failures

nit: double spaces before mlx5_core_warn.

> and return immediately to prevent null pointer dereference of ns.
> 
> Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>

Please add Fixes tag and target the patch to net.

> ---
>   drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c
> index a80ecb672f33..e808531cc6f5 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c
> @@ -196,6 +196,11 @@ mlx5_chains_create_table(struct mlx5_fs_chains *chains,
>   		ns = mlx5_get_flow_namespace(chains->dev, chains->ns);
>   	}
>   
> +	if (!ns) {
> +		mlx5_core_warn(chains->dev, "Failed to get flow namespace\n");
> +		return NULL;

Callers expect error, not NULL.

> +	}
> +
>   	ft_attr.autogroup.num_reserved_entries = 2;
>   	ft_attr.autogroup.max_num_groups = chains->group_num;
>   	ft = mlx5_create_auto_grouped_flow_table(ns, &ft_attr);
diff mbox series

Patch

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c
index a80ecb672f33..e808531cc6f5 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c
@@ -196,6 +196,11 @@  mlx5_chains_create_table(struct mlx5_fs_chains *chains,
 		ns = mlx5_get_flow_namespace(chains->dev, chains->ns);
 	}
 
+	if (!ns) {
+		mlx5_core_warn(chains->dev, "Failed to get flow namespace\n");
+		return NULL;
+	}
+
 	ft_attr.autogroup.num_reserved_entries = 2;
 	ft_attr.autogroup.max_num_groups = chains->group_num;
 	ft = mlx5_create_auto_grouped_flow_table(ns, &ft_attr);