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: suanmi...@mellanox.com

Signed-off-by: Bing Zhao <bi...@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viachesl...@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

Reply via email to