drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c | 5 +++++ 1 file changed, 5 insertions(+)
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(+)
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);
--
2.42.0.windows.2
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);
© 2016 - 2026 Red Hat, Inc.