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 a9ec40ca78936ef95e5df6cae0ec5d63f4e3720d..751dd5869485a25943030417999725ed0ffaa63e 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;