[dpdk-dev] [PATCH] net/mlx5: fix wrong port action assert position

Bing Zhao bingz at mellanox.com
Fri May 15 06:49:18 CEST 2020


In the current implementation, only one port action is supported in
switchdev mode. So only one port action will exist in a single device
flow. In debug mode, an assertion will be used to check the if the
port action is none, and it should locate before the port action
resource registration.
In the meanwhile, all the fields of the action will be overwritten
in the registration stage. There is no need to clear the temporary
resource with memset.

Fixes: f3faf9ea1185 ("net/mlx5: convert port id action to indexed")
Cc: suanmingm at mellanox.com

Signed-off-by: Bing Zhao <bingz at mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo at mellanox.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 4ebb7ce..64d9a79 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -7846,12 +7846,11 @@ struct field_modify_info modify_tcp[] = {
 			if (flow_dv_translate_action_port_id(dev, action,
 							     &port_id, error))
 				return -rte_errno;
-			memset(&port_id_resource, 0, sizeof(port_id_resource));
 			port_id_resource.port_id = port_id;
+			MLX5_ASSERT(!handle->rix_port_id_action);
 			if (flow_dv_port_id_action_resource_register
 			    (dev, &port_id_resource, dev_flow, error))
 				return -rte_errno;
-			MLX5_ASSERT(!handle->rix_port_id_action);
 			dev_flow->dv.actions[actions_n++] =
 					dev_flow->dv.port_id_action->action;
 			action_flags |= MLX5_FLOW_ACTION_PORT_ID;
-- 
1.8.3.1



More information about the dev mailing list