There might be a condition where the fte found is not active yet. In
this case we should not use it, but continue to search for another, or
allocate a new one.
Fixes: bd71b08ec2ee ("net/mlx5: Support multiple updates of steering rules in parallel")
Signed-off-by: Eli Britstein <elibr@mellanox.com>
Reviewed-by: Maor Gottlieb <maorg@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
                        mlx5_core_warn(dev,
                                       "flow steering can't delete fte in index %d of flow group id %d\n",
                                       fte->index, fg->id);
+               node->active = 0;
        }
 }
 
                fte_tmp = NULL;
                goto out;
        }
+       if (!fte_tmp->node.active) {
+               tree_put_node(&fte_tmp->node);
+               fte_tmp = NULL;
+               goto out;
+       }
 
        nested_down_write_ref_node(&fte_tmp->node, FS_LOCK_CHILD);
 out: