]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net/mlx5: handle errors in mlx5_chains_create_table()
authorWentao Liang <vulab@iscas.ac.cn>
Fri, 7 Mar 2025 02:18:20 +0000 (10:18 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Apr 2025 12:30:49 +0000 (14:30 +0200)
[ Upstream commit eab0396353be1c778eba1c0b5180176f04dd21ce ]

In mlx5_chains_create_table(), the return value of mlx5_get_fdb_sub_ns()
and mlx5_get_flow_namespace() must be checked to prevent NULL pointer
dereferences. If either function fails, the function should log error
message with mlx5_core_warn() and return error pointer.

Fixes: 39ac237ce009 ("net/mlx5: E-Switch, Refactor chains and priorities")
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20250307021820.2646-1-vulab@iscas.ac.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c

index 77c6287c90d55063cb61b49d8c2b298312f27bc3..0e255ff95a50d7de2a1d705e045f8e8a723ef01f 100644 (file)
@@ -267,6 +267,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 ERR_PTR(-EOPNOTSUPP);
+       }
+
        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);