[PATCH net v2] net/mlx5: handle errors in mlx5_chains_create_table()

Wentao Liang posted 1 patch 11 months, 1 week ago
There is a newer version of this series
drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c | 5 +++++
1 file changed, 5 insertions(+)
[PATCH net v2] net/mlx5: handle errors in mlx5_chains_create_table()
Posted by Wentao Liang 11 months, 1 week ago
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.

[v1]->[v2]:
Add Fixes tag.
Target patch to net.
Change return value from NULL to ERR_PTR(-EOPNOTSUPP)

Fixes: ae430332557a ("net/mlx5: Refactor multi chains and prios support")
Cc: stable@vger.kernel.org # 5.10+
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..711d14dea248 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 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);
-- 
2.42.0.windows.2

Re: [PATCH net v2] net/mlx5: handle errors in mlx5_chains_create_table()
Posted by Tariq Toukan 11 months, 1 week ago

On 06/03/2025 10:54, Wentao Liang wrote:
> 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.
> 
> [v1]->[v2]:
> Add Fixes tag.
> Target patch to net.
> Change return value from NULL to ERR_PTR(-EOPNOTSUPP)
> 

Change history should not be part of the commit message.
Please move it to under the "---" marker below.

> Fixes: ae430332557a ("net/mlx5: Refactor multi chains and prios support")

Same problem existed also in mlx5_esw_chains_create_fdb_table(), before 
the refactoring.
Please refer to the original patch where issue was introduced, seems to 
be commit 39ac237ce009 ("net/mlx5: E-Switch, Refactor chains and 
priorities").