[PATCH] net/mlx5: Fix some error handling paths in 'mlx5e_tc_add_fdb_flow()'

Subsystems: mellanox ethernet driver (mlx5e), mellanox mlx5 core vpi driver, networking drivers, the rest

STALE1727d

3 messages, 3 authors, 2021-11-16 · open the first message on its own page

[PATCH] net/mlx5: Fix some error handling paths in 'mlx5e_tc_add_fdb_flow()'

From: Christophe JAILLET <hidden>
Date: 2021-11-06 17:08:18

All the error handling paths of 'mlx5e_tc_add_fdb_flow()' end to 'err_out'
where 'flow_flag_set(flow, FAILED);' is called.

All but the new error handling paths added by the commits given in the
Fixes tag below.

Fix these error handling paths and branch to 'err_out'.

Fixes: 166f431ec6be ("net/mlx5e: Add indirect tc offload of ovs internal port")
Fixes: b16eb3c81fe2 ("net/mlx5: Support internal port as decap route device")
Signed-off-by: Christophe JAILLET <redacted>
---
This patch is speculative, review with care.
---
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
index 835caa1c7b74..ff881307c744 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
@@ -1445,7 +1445,7 @@ mlx5e_tc_add_fdb_flow(struct mlx5e_priv *priv,
 							MLX5_FLOW_NAMESPACE_FDB, VPORT_TO_REG,
 							metadata);
 			if (err)
-				return err;
+				goto err_out;
 		}
 	}
 
@@ -1461,13 +1461,15 @@ mlx5e_tc_add_fdb_flow(struct mlx5e_priv *priv,
 		if (attr->chain) {
 			NL_SET_ERR_MSG_MOD(extack,
 					   "Internal port rule is only supported on chain 0");
-			return -EOPNOTSUPP;
+			err = -EOPNOTSUPP;
+			goto err_out;
 		}
 
 		if (attr->dest_chain) {
 			NL_SET_ERR_MSG_MOD(extack,
 					   "Internal port rule offload doesn't support goto action");
-			return -EOPNOTSUPP;
+			err = -EOPNOTSUPP;
+			goto err_out;
 		}
 
 		int_port = mlx5e_tc_int_port_get(mlx5e_get_int_port_priv(priv),
@@ -1475,8 +1477,10 @@ mlx5e_tc_add_fdb_flow(struct mlx5e_priv *priv,
 						 flow_flag_test(flow, EGRESS) ?
 						 MLX5E_TC_INT_PORT_EGRESS :
 						 MLX5E_TC_INT_PORT_INGRESS);
-		if (IS_ERR(int_port))
-			return PTR_ERR(int_port);
+		if (IS_ERR(int_port)) {
+			err = PTR_ERR(int_port);
+			goto err_out;
+		}
 
 		esw_attr->int_port = int_port;
 	}
-- 
2.30.2

Re: [PATCH] net/mlx5: Fix some error handling paths in 'mlx5e_tc_add_fdb_flow()'

From: Roi Dayan <hidden>
Date: 2021-11-07 07:49:59


On 2021-11-06 7:08 PM, Christophe JAILLET wrote:
quoted hunk
All the error handling paths of 'mlx5e_tc_add_fdb_flow()' end to 'err_out'
where 'flow_flag_set(flow, FAILED);' is called.

All but the new error handling paths added by the commits given in the
Fixes tag below.

Fix these error handling paths and branch to 'err_out'.

Fixes: 166f431ec6be ("net/mlx5e: Add indirect tc offload of ovs internal port")
Fixes: b16eb3c81fe2 ("net/mlx5: Support internal port as decap route device")
Signed-off-by: Christophe JAILLET <redacted>
---
This patch is speculative, review with care.
---
  drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 14 +++++++++-----
  1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
index 835caa1c7b74..ff881307c744 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
@@ -1445,7 +1445,7 @@ mlx5e_tc_add_fdb_flow(struct mlx5e_priv *priv,
  							MLX5_FLOW_NAMESPACE_FDB, VPORT_TO_REG,
  							metadata);
  			if (err)
-				return err;
+				goto err_out;
  		}
  	}
  
@@ -1461,13 +1461,15 @@ mlx5e_tc_add_fdb_flow(struct mlx5e_priv *priv,
  		if (attr->chain) {
  			NL_SET_ERR_MSG_MOD(extack,
  					   "Internal port rule is only supported on chain 0");
-			return -EOPNOTSUPP;
+			err = -EOPNOTSUPP;
+			goto err_out;
  		}
  
  		if (attr->dest_chain) {
  			NL_SET_ERR_MSG_MOD(extack,
  					   "Internal port rule offload doesn't support goto action");
-			return -EOPNOTSUPP;
+			err = -EOPNOTSUPP;
+			goto err_out;
  		}
  
  		int_port = mlx5e_tc_int_port_get(mlx5e_get_int_port_priv(priv),
@@ -1475,8 +1477,10 @@ mlx5e_tc_add_fdb_flow(struct mlx5e_priv *priv,
  						 flow_flag_test(flow, EGRESS) ?
  						 MLX5E_TC_INT_PORT_EGRESS :
  						 MLX5E_TC_INT_PORT_INGRESS);
-		if (IS_ERR(int_port))
-			return PTR_ERR(int_port);
+		if (IS_ERR(int_port)) {
+			err = PTR_ERR(int_port);
+			goto err_out;
+		}
  
  		esw_attr->int_port = int_port;
  	}

thanks for catching this.

Reviewed-by: Roi Dayan <redacted>

Re: [PATCH] net/mlx5: Fix some error handling paths in 'mlx5e_tc_add_fdb_flow()'

From: Saeed Mahameed <saeedm@nvidia.com>
Date: 2021-11-16 20:45:02

On Sat, 2021-11-06 at 18:08 +0100, Christophe JAILLET wrote:
All the error handling paths of 'mlx5e_tc_add_fdb_flow()' end to
'err_out'
where 'flow_flag_set(flow, FAILED);' is called.

All but the new error handling paths added by the commits given in
the
Fixes tag below.

Fix these error handling paths and branch to 'err_out'.

Fixes: 166f431ec6be ("net/mlx5e: Add indirect tc offload of ovs
internal port")
Fixes: b16eb3c81fe2 ("net/mlx5: Support internal port as decap route
device")
Signed-off-by: Christophe JAILLET <redacted>
---
This patch is speculative, review with care.
---
Applied to net-mlx5, Thanks ! 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help