]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net/mlx5e: Fix traffic duplication in ethtool steering
authorSaeed Mahameed <saeedm@mellanox.com>
Wed, 11 Sep 2019 14:50:13 +0000 (07:50 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 5 Oct 2019 11:13:20 +0000 (13:13 +0200)
[ Upstream commit d22fcc806b84b9818de08b32e494f3c05dd236c7 ]

Before this patch, when adding multiple ethtool steering rules with
identical classification, the driver used to append the new destination
to the already existing hw rule, which caused the hw to forward the
traffic to all destinations (rx queues).

Here we avoid this by setting the "no append" mlx5 fs core flag when
adding a new ethtool rule.

Fixes: 6dc6071cfcde ("net/mlx5e: Add ethtool flow steering support")
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Reviewed-by: Maor Gottlieb <maorg@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c

index 4421c10f58ae5d26ed10ffd81512e6de9d339832..baed9e93794ff583c8dd5ade8852d05b241ec402 100644 (file)
@@ -397,10 +397,10 @@ add_ethtool_flow_rule(struct mlx5e_priv *priv,
                      struct mlx5_flow_table *ft,
                      struct ethtool_rx_flow_spec *fs)
 {
+       struct mlx5_flow_act flow_act = { .flags = FLOW_ACT_NO_APPEND };
        struct mlx5_flow_destination *dst = NULL;
-       struct mlx5_flow_act flow_act = {0};
-       struct mlx5_flow_spec *spec;
        struct mlx5_flow_handle *rule;
+       struct mlx5_flow_spec *spec;
        int err = 0;
 
        spec = kvzalloc(sizeof(*spec), GFP_KERNEL);