In cases with more than one STE we didn't update the whole tag
of the match jumbo STE, the ste_attr that keeps that indication was not
updated at the last iteration.
Now we indicate it is a jumbo frame before saving the tag for coming
deletion of it.

Fixes: 405242c52dd5 ("net/mlx5/hws: add rule object")
Reviewed-by: Alex Vesker <va...@nvidia.com>
Signed-off-by: Erez Shitrit <ere...@nvidia.com>
---
 drivers/net/mlx5/hws/mlx5dr_rule.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/hws/mlx5dr_rule.c 
b/drivers/net/mlx5/hws/mlx5dr_rule.c
index 9d5e5b11a5..2418ca0b26 100644
--- a/drivers/net/mlx5/hws/mlx5dr_rule.c
+++ b/drivers/net/mlx5/hws/mlx5dr_rule.c
@@ -116,6 +116,9 @@ static void
 mlx5dr_rule_save_delete_info(struct mlx5dr_rule *rule,
                             struct mlx5dr_send_ste_attr *ste_attr)
 {
+       struct mlx5dr_match_template *mt = rule->matcher->mt;
+       bool is_jumbo = mlx5dr_matcher_mt_is_jumbo(mt);
+
        if (unlikely(mlx5dr_matcher_req_fw_wqe(rule->matcher))) {
                uint8_t *src_tag;
 
@@ -136,7 +139,7 @@ mlx5dr_rule_save_delete_info(struct mlx5dr_rule *rule,
                return;
        }
 
-       if (ste_attr->wqe_tag_is_jumbo)
+       if (is_jumbo)
                memcpy(rule->tag.jumbo, ste_attr->wqe_data->jumbo, 
MLX5DR_JUMBO_TAG_SZ);
        else
                memcpy(rule->tag.match, ste_attr->wqe_data->tag, 
MLX5DR_MATCH_TAG_SZ);
-- 
2.18.2

Reply via email to