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

Reply via email to