| From 1c16603954147ebe4b3bb2cb049fbeaa17646e81 Mon Sep 17 00:00:00 2001 |
| From: Huy Nguyen <huyn@mellanox.com> |
| Date: Thu, 7 Mar 2019 14:49:50 -0600 |
| Subject: net/mlx5e: Update xoff formula |
| |
| [ Upstream commit 5ec983e924c7978aaec3cf8679ece9436508bb20 ] |
| |
| Set minimum speed in xoff threshold formula to 40Gbps |
| |
| Fixes: 0696d60853d5 ("net/mlx5e: Receive buffer configuration") |
| Signed-off-by: Huy Nguyen <huyn@mellanox.com> |
| Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| .../net/ethernet/mellanox/mlx5/core/en/port_buffer.c | 11 ++++++----- |
| 1 file changed, 6 insertions(+), 5 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/port_buffer.c b/drivers/net/ethernet/mellanox/mlx5/core/en/port_buffer.c |
| index eac245a93f91..f00de0c987cd 100644 |
| --- a/drivers/net/ethernet/mellanox/mlx5/core/en/port_buffer.c |
| +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/port_buffer.c |
| @@ -122,7 +122,9 @@ static int port_set_buffer(struct mlx5e_priv *priv, |
| return err; |
| } |
| |
| -/* xoff = ((301+2.16 * len [m]) * speed [Gbps] + 2.72 MTU [B]) */ |
| +/* xoff = ((301+2.16 * len [m]) * speed [Gbps] + 2.72 MTU [B]) |
| + * minimum speed value is 40Gbps |
| + */ |
| static u32 calculate_xoff(struct mlx5e_priv *priv, unsigned int mtu) |
| { |
| u32 speed; |
| @@ -130,10 +132,9 @@ static u32 calculate_xoff(struct mlx5e_priv *priv, unsigned int mtu) |
| int err; |
| |
| err = mlx5e_port_linkspeed(priv->mdev, &speed); |
| - if (err) { |
| - mlx5_core_warn(priv->mdev, "cannot get port speed\n"); |
| - return 0; |
| - } |
| + if (err) |
| + speed = SPEED_40000; |
| + speed = max_t(u32, speed, SPEED_40000); |
| |
| xoff = (301 + 216 * priv->dcbx.cable_len / 100) * speed / 1000 + 272 * mtu / 100; |
| |
| -- |
| 2.19.1 |
| |