You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
4.4 KiB
116 lines
4.4 KiB
From 14f853c86f2b801cbe7aa38ebc2fac7883122ec7 Mon Sep 17 00:00:00 2001
|
|
From: Alaa Hleihel <ahleihel@redhat.com>
|
|
Date: Sun, 10 May 2020 15:04:46 -0400
|
|
Subject: [PATCH 121/312] [netdrv] net/mlx5e: Fix hairpin RSS table size
|
|
|
|
Message-id: <20200510150452.10307-82-ahleihel@redhat.com>
|
|
Patchwork-id: 306705
|
|
Patchwork-instance: patchwork
|
|
O-Subject: [RHEL8.3 BZ 1789380 v2 81/87] net/mlx5e: Fix hairpin RSS table size
|
|
Bugzilla: 1789380
|
|
RH-Acked-by: Kamal Heib <kheib@redhat.com>
|
|
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
|
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
|
|
RH-Acked-by: Jonathan Toppins <jtoppins@redhat.com>
|
|
|
|
Bugzilla: http://bugzilla.redhat.com/1789380
|
|
Upstream: v5.5-rc6
|
|
|
|
commit 6412bb396a63f28de994b1480edf8e4caf4aa494
|
|
Author: Eli Cohen <eli@mellanox.com>
|
|
Date: Wed Dec 11 09:17:40 2019 +0200
|
|
|
|
net/mlx5e: Fix hairpin RSS table size
|
|
|
|
Set hairpin table size to the corret size, based on the groups that
|
|
would be created in it. Groups are laid out on the table such that a
|
|
group occupies a range of entries in the table. This implies that the
|
|
group ranges should have correspondence to the table they are laid upon.
|
|
|
|
The patch cited below made group 1's size to grow hence causing
|
|
overflow of group range laid on the table.
|
|
|
|
Fixes: a795d8db2a6d ("net/mlx5e: Support RSS for IP-in-IP and IPv6 tunneled packets")
|
|
Signed-off-by: Eli Cohen <eli@mellanox.com>
|
|
Signed-off-by: Mark Bloch <markb@mellanox.com>
|
|
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
|
|
|
|
Signed-off-by: Alaa Hleihel <ahleihel@redhat.com>
|
|
Signed-off-by: Frantisek Hrbata <fhrbata@redhat.com>
|
|
---
|
|
drivers/net/ethernet/mellanox/mlx5/core/en/fs.h | 16 ++++++++++++++++
|
|
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c | 16 ----------------
|
|
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 2 +-
|
|
3 files changed, 17 insertions(+), 17 deletions(-)
|
|
|
|
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/fs.h b/drivers/net/ethernet/mellanox/mlx5/core/en/fs.h
|
|
index 68d593074f6c..d48292ccda29 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/fs.h
|
|
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/fs.h
|
|
@@ -122,6 +122,22 @@ enum {
|
|
#endif
|
|
};
|
|
|
|
+#define MLX5E_TTC_NUM_GROUPS 3
|
|
+#define MLX5E_TTC_GROUP1_SIZE (BIT(3) + MLX5E_NUM_TUNNEL_TT)
|
|
+#define MLX5E_TTC_GROUP2_SIZE BIT(1)
|
|
+#define MLX5E_TTC_GROUP3_SIZE BIT(0)
|
|
+#define MLX5E_TTC_TABLE_SIZE (MLX5E_TTC_GROUP1_SIZE +\
|
|
+ MLX5E_TTC_GROUP2_SIZE +\
|
|
+ MLX5E_TTC_GROUP3_SIZE)
|
|
+
|
|
+#define MLX5E_INNER_TTC_NUM_GROUPS 3
|
|
+#define MLX5E_INNER_TTC_GROUP1_SIZE BIT(3)
|
|
+#define MLX5E_INNER_TTC_GROUP2_SIZE BIT(1)
|
|
+#define MLX5E_INNER_TTC_GROUP3_SIZE BIT(0)
|
|
+#define MLX5E_INNER_TTC_TABLE_SIZE (MLX5E_INNER_TTC_GROUP1_SIZE +\
|
|
+ MLX5E_INNER_TTC_GROUP2_SIZE +\
|
|
+ MLX5E_INNER_TTC_GROUP3_SIZE)
|
|
+
|
|
#ifdef CONFIG_MLX5_EN_RXNFC
|
|
|
|
struct mlx5e_ethtool_table {
|
|
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
|
|
index 15b7f0f1427c..73d3dc07331f 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
|
|
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
|
|
@@ -904,22 +904,6 @@ static int mlx5e_generate_ttc_table_rules(struct mlx5e_priv *priv,
|
|
return err;
|
|
}
|
|
|
|
-#define MLX5E_TTC_NUM_GROUPS 3
|
|
-#define MLX5E_TTC_GROUP1_SIZE (BIT(3) + MLX5E_NUM_TUNNEL_TT)
|
|
-#define MLX5E_TTC_GROUP2_SIZE BIT(1)
|
|
-#define MLX5E_TTC_GROUP3_SIZE BIT(0)
|
|
-#define MLX5E_TTC_TABLE_SIZE (MLX5E_TTC_GROUP1_SIZE +\
|
|
- MLX5E_TTC_GROUP2_SIZE +\
|
|
- MLX5E_TTC_GROUP3_SIZE)
|
|
-
|
|
-#define MLX5E_INNER_TTC_NUM_GROUPS 3
|
|
-#define MLX5E_INNER_TTC_GROUP1_SIZE BIT(3)
|
|
-#define MLX5E_INNER_TTC_GROUP2_SIZE BIT(1)
|
|
-#define MLX5E_INNER_TTC_GROUP3_SIZE BIT(0)
|
|
-#define MLX5E_INNER_TTC_TABLE_SIZE (MLX5E_INNER_TTC_GROUP1_SIZE +\
|
|
- MLX5E_INNER_TTC_GROUP2_SIZE +\
|
|
- MLX5E_INNER_TTC_GROUP3_SIZE)
|
|
-
|
|
static int mlx5e_create_ttc_table_groups(struct mlx5e_ttc_table *ttc,
|
|
bool use_ipv)
|
|
{
|
|
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
|
|
index 0af1d5b1e438..daef493b8e50 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
|
|
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
|
|
@@ -586,7 +586,7 @@ static void mlx5e_hairpin_set_ttc_params(struct mlx5e_hairpin *hp,
|
|
for (tt = 0; tt < MLX5E_NUM_INDIR_TIRS; tt++)
|
|
ttc_params->indir_tirn[tt] = hp->indir_tirn[tt];
|
|
|
|
- ft_attr->max_fte = MLX5E_NUM_TT;
|
|
+ ft_attr->max_fte = MLX5E_TTC_TABLE_SIZE;
|
|
ft_attr->level = MLX5E_TC_TTC_FT_LEVEL;
|
|
ft_attr->prio = MLX5E_TC_PRIO;
|
|
}
|
|
--
|
|
2.13.6
|
|
|