Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2d92a74 authored by Huy Nguyen's avatar Huy Nguyen Committed by Greg Kroah-Hartman
Browse files

net/mlx5e: Update xoff formula



[ Upstream commit 5ec983e924c7978aaec3cf8679ece9436508bb20 ]

Set minimum speed in xoff threshold formula to 40Gbps

Fixes: 0696d608 ("net/mlx5e: Receive buffer configuration")
Signed-off-by: default avatarHuy Nguyen <huyn@mellanox.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent eab86503
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -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;