All of lore.kernel.org
 help / color / mirror / Atom feed
From: Saeed Mahameed <saeed@kernel.org>
To: "David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>
Cc: netdev@vger.kernel.org, Aya Levin <ayal@nvidia.com>,
	Eran Ben Elisha <eranbe@nvidia.com>,
	Saeed Mahameed <saeedm@nvidia.com>
Subject: [net 08/11] net/mlx5e: ethtool, Fix restriction of autoneg with 56G
Date: Thu,  7 Jan 2021 12:28:42 -0800	[thread overview]
Message-ID: <20210107202845.470205-9-saeed@kernel.org> (raw)
In-Reply-To: <20210107202845.470205-1-saeed@kernel.org>

From: Aya Levin <ayal@nvidia.com>

Prior to this patch, configuring speed to 50G with autoneg off over
devices supporting 50G per lane failed.
Support for 50G per lane introduced a new set of link-modes, on which
driver always performed a speed validation as if only legacy link-modes
were configured. Fix driver speed validation to force setting autoneg
over 56G only if in legacy link-mode.

Fixes: 3d7cadae51f1 ("net/mlx5e: ethtool, Fix analysis of speed setting")
Signed-off-by: Aya Levin <ayal@nvidia.com>
Reviewed-by: Eran Ben Elisha <eranbe@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 .../ethernet/mellanox/mlx5/core/en_ethtool.c  | 24 ++++++++++++++-----
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
index d9076d543104..2d37742a888c 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
@@ -1010,6 +1010,22 @@ static int mlx5e_get_link_ksettings(struct net_device *netdev,
 	return mlx5e_ethtool_get_link_ksettings(priv, link_ksettings);
 }
 
+static int mlx5e_speed_validate(struct net_device *netdev, bool ext,
+				const unsigned long link_modes, u8 autoneg)
+{
+	/* Extended link-mode has no speed limitations. */
+	if (ext)
+		return 0;
+
+	if ((link_modes & MLX5E_PROT_MASK(MLX5E_56GBASE_R4)) &&
+	    autoneg != AUTONEG_ENABLE) {
+		netdev_err(netdev, "%s: 56G link speed requires autoneg enabled\n",
+			   __func__);
+		return -EINVAL;
+	}
+	return 0;
+}
+
 static u32 mlx5e_ethtool2ptys_adver_link(const unsigned long *link_modes)
 {
 	u32 i, ptys_modes = 0;
@@ -1103,13 +1119,9 @@ int mlx5e_ethtool_set_link_ksettings(struct mlx5e_priv *priv,
 	link_modes = autoneg == AUTONEG_ENABLE ? ethtool2ptys_adver_func(adver) :
 		mlx5e_port_speed2linkmodes(mdev, speed, !ext);
 
-	if ((link_modes & MLX5E_PROT_MASK(MLX5E_56GBASE_R4)) &&
-	    autoneg != AUTONEG_ENABLE) {
-		netdev_err(priv->netdev, "%s: 56G link speed requires autoneg enabled\n",
-			   __func__);
-		err = -EINVAL;
+	err = mlx5e_speed_validate(priv->netdev, ext, link_modes, autoneg);
+	if (err)
 		goto out;
-	}
 
 	link_modes = link_modes & eproto.cap;
 	if (!link_modes) {
-- 
2.26.2


  parent reply	other threads:[~2021-01-07 20:30 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-07 20:28 [pull request][net 00/11] mlx5 fixes 2021-01-07 Saeed Mahameed
2021-01-07 20:28 ` [net 01/11] net/mlx5: Check if lag is supported before creating one Saeed Mahameed
2021-01-07 20:28 ` [net 02/11] net/mlx5e: Add missing capability check for uplink follow Saeed Mahameed
2021-01-07 20:28 ` [net 03/11] net/mlx5: Use port_num 1 instead of 0 when delete a RoCE address Saeed Mahameed
2021-01-07 20:28 ` [net 04/11] net/mlx5e: CT: Use per flow counter when CT flow accounting is enabled Saeed Mahameed
2021-01-07 22:04   ` Marcelo Ricardo Leitner
2021-01-08  3:07   ` Jakub Kicinski
2021-01-08  4:06     ` Saeed Mahameed
2021-01-08  4:18       ` Saeed Mahameed
2021-01-08  4:40         ` Jakub Kicinski
2021-01-08  4:56           ` Saeed Mahameed
2021-01-07 20:28 ` [net 05/11] net/mlx5e: Fix SWP offsets when vlan inserted by driver Saeed Mahameed
2021-01-08  3:08   ` Jakub Kicinski
2021-01-08  4:07     ` Saeed Mahameed
2021-01-07 20:28 ` [net 06/11] net/mlx5: E-Switch, fix changing vf VLANID Saeed Mahameed
2021-01-07 20:28 ` [net 07/11] net/mlx5e: In skb build skip setting mark in switchdev mode Saeed Mahameed
2021-01-07 20:28 ` Saeed Mahameed [this message]
2021-01-07 20:28 ` [net 09/11] net/mlx5: Release devlink object if adev fails Saeed Mahameed
2021-01-07 20:28 ` [net 10/11] net/mlx5e: Fix two double free cases Saeed Mahameed
2021-01-07 20:28 ` [net 11/11] net/mlx5e: Fix memleak in mlx5e_create_l2_table_groups Saeed Mahameed
2021-01-08  3:18 ` [pull request][net 00/11] mlx5 fixes 2021-01-07 Jakub Kicinski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210107202845.470205-9-saeed@kernel.org \
    --to=saeed@kernel.org \
    --cc=ayal@nvidia.com \
    --cc=davem@davemloft.net \
    --cc=eranbe@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=saeedm@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.