net/mlx5: Fix group version management
authorEli Cohen <eli@mellanox.com>
Wed, 4 Mar 2020 08:32:56 +0000 (10:32 +0200)
committerSaeed Mahameed <saeedm@mellanox.com>
Thu, 26 Mar 2020 06:19:06 +0000 (23:19 -0700)
When adding a rule to a flow group we need increment the version of the
group. Current code fails to do that and as a result, when trying to add
a rule, we will fail to discover a case where an FTE with the same match
value was added while we scanned the groups of the same match criteria,
thus we may try to add an FTE that was already added.

Signed-off-by: Eli Cohen <eli@mellanox.com>
Reviewed-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c

index a9ec40c..751dd58 100644 (file)
@@ -1323,6 +1323,7 @@ add_rule_fte(struct fs_fte *fte,
        fte->node.active = true;
        fte->status |= FS_FTE_STATUS_EXISTING;
        atomic_inc(&fte->node.version);
+       atomic_inc(&fg->node.version);
 
 out:
        return handle;