Collision matcher uses the same action-template and action STE's as its
parent matcher, so ne need to redo it.
Signed-off-by: Erez Shitrit <ere...@nvidia.com>
Reviewed-by: Alex Vesker <va...@nvidia.com>
Acked-by: Matan Azrad <ma...@nvidia.com>
---
drivers/net/mlx5/hws/mlx5dr_matcher.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mlx5/hws/mlx5dr_matcher.c
b/drivers/net/mlx5/hws/mlx5dr_matcher.c
index a02f42a7e8..102e4f19c8 100644
--- a/drivers/net/mlx5/hws/mlx5dr_matcher.c
+++ b/drivers/net/mlx5/hws/mlx5dr_matcher.c
@@ -714,6 +714,9 @@ static int mlx5dr_matcher_bind_at(struct mlx5dr_matcher
*matcher)
uint32_t required_stes;
int i, ret;
+ if (matcher->flags & MLX5DR_MATCHER_FLAGS_COLLISION)
+ return 0;
+
for (i = 0; i < matcher->num_of_at; i++) {
struct mlx5dr_action_template *at = &matcher->at[i];
@@ -786,7 +789,7 @@ static void mlx5dr_matcher_unbind_at(struct mlx5dr_matcher
*matcher)
{
struct mlx5dr_table *tbl = matcher->tbl;
- if (!matcher->action_ste.max_stes)
+ if (!matcher->action_ste.max_stes || matcher->flags &
MLX5DR_MATCHER_FLAGS_COLLISION)
return;
mlx5dr_action_free_single_stc(tbl->ctx, tbl->type,
&matcher->action_ste.stc);
--
2.18.2