]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/4.19.35/net-mlx5e-update-xoff-formula.patch
Linux 4.14.112
[thirdparty/kernel/stable-queue.git] / releases / 4.19.35 / net-mlx5e-update-xoff-formula.patch
1 From 97a1a6eb533cd769fb833a7991019055f4f40e3b Mon Sep 17 00:00:00 2001
2 From: Huy Nguyen <huyn@mellanox.com>
3 Date: Thu, 7 Mar 2019 14:49:50 -0600
4 Subject: net/mlx5e: Update xoff formula
5
6 [ Upstream commit 5ec983e924c7978aaec3cf8679ece9436508bb20 ]
7
8 Set minimum speed in xoff threshold formula to 40Gbps
9
10 Fixes: 0696d60853d5 ("net/mlx5e: Receive buffer configuration")
11 Signed-off-by: Huy Nguyen <huyn@mellanox.com>
12 Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
13 Signed-off-by: Sasha Levin <sashal@kernel.org>
14 ---
15 .../net/ethernet/mellanox/mlx5/core/en/port_buffer.c | 11 ++++++-----
16 1 file changed, 6 insertions(+), 5 deletions(-)
17
18 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/port_buffer.c b/drivers/net/ethernet/mellanox/mlx5/core/en/port_buffer.c
19 index eac245a93f91..f00de0c987cd 100644
20 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/port_buffer.c
21 +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/port_buffer.c
22 @@ -122,7 +122,9 @@ static int port_set_buffer(struct mlx5e_priv *priv,
23 return err;
24 }
25
26 -/* xoff = ((301+2.16 * len [m]) * speed [Gbps] + 2.72 MTU [B]) */
27 +/* xoff = ((301+2.16 * len [m]) * speed [Gbps] + 2.72 MTU [B])
28 + * minimum speed value is 40Gbps
29 + */
30 static u32 calculate_xoff(struct mlx5e_priv *priv, unsigned int mtu)
31 {
32 u32 speed;
33 @@ -130,10 +132,9 @@ static u32 calculate_xoff(struct mlx5e_priv *priv, unsigned int mtu)
34 int err;
35
36 err = mlx5e_port_linkspeed(priv->mdev, &speed);
37 - if (err) {
38 - mlx5_core_warn(priv->mdev, "cannot get port speed\n");
39 - return 0;
40 - }
41 + if (err)
42 + speed = SPEED_40000;
43 + speed = max_t(u32, speed, SPEED_40000);
44
45 xoff = (301 + 216 * priv->dcbx.cable_len / 100) * speed / 1000 + 272 * mtu / 100;
46
47 --
48 2.19.1
49