netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] ethtool: reset #lanes when lanes is omitted
@ 2023-03-30 18:38 Andy Roulin
  2023-03-31 13:10 ` Ido Schimmel
  0 siblings, 1 reply; 2+ messages in thread
From: Andy Roulin @ 2023-03-30 18:38 UTC (permalink / raw)
  To: netdev
  Cc: davem, kuba, jiri, andrew, f.fainelli, mkubecek, mlxsw, idosch,
	Danielle Ratson

If the number of lanes was forced and then subsequently the user
omits this parameter, the ksettings->lanes is reset. The driver
should then reset the number of lanes to the device's default
for the specified speed.

However, although the ksettings->lanes is set to 0, the mod variable
is not set to true to indicate the driver and userspace should be
notified of the changes.

Fixes: 012ce4dd3102 ("ethtool: Extend link modes settings uAPI with lanes")
Signed-off-by: Andy Roulin <aroulin@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
---
 net/ethtool/linkmodes.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/net/ethtool/linkmodes.c b/net/ethtool/linkmodes.c
index fab66c169b9f..20165e07ef90 100644
--- a/net/ethtool/linkmodes.c
+++ b/net/ethtool/linkmodes.c
@@ -270,11 +270,12 @@ static int ethnl_update_linkmodes(struct genl_info *info, struct nlattr **tb,
 					    "lanes configuration not supported by device");
 			return -EOPNOTSUPP;
 		}
-	} else if (!lsettings->autoneg) {
-		/* If autoneg is off and lanes parameter is not passed from user,
-		 * set the lanes parameter to 0.
+	} else if (!lsettings->autoneg && ksettings->lanes) {
+		/* If autoneg is off and lanes parameter is not passed from user but
+		 * it was defined previously then set the lanes parameter to 0.
 		 */
 		ksettings->lanes = 0;
+		*mod = true;
 	}
 
 	ret = ethnl_update_bitset(ksettings->link_modes.advertising,
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH net] ethtool: reset #lanes when lanes is omitted
  2023-03-30 18:38 [PATCH net] ethtool: reset #lanes when lanes is omitted Andy Roulin
@ 2023-03-31 13:10 ` Ido Schimmel
  0 siblings, 0 replies; 2+ messages in thread
From: Ido Schimmel @ 2023-03-31 13:10 UTC (permalink / raw)
  To: Andy Roulin
  Cc: netdev, davem, kuba, jiri, andrew, f.fainelli, mkubecek, mlxsw,
	Danielle Ratson

On Thu, Mar 30, 2023 at 11:38:26AM -0700, Andy Roulin wrote:
> If the number of lanes was forced and then subsequently the user
> omits this parameter, the ksettings->lanes is reset. The driver
> should then reset the number of lanes to the device's default
> for the specified speed.
> 
> However, although the ksettings->lanes is set to 0, the mod variable
> is not set to true to indicate the driver and userspace should be
> notified of the changes.

Code looks fine, but I suggest including before and after examples in
the commit message. Currently, the same operation produces different
results based on the state of the system. For example, if the starting
state is:

# ethtool swp1 | grep -A 3 'Speed: '
        Speed: 400000Mb/s
        Lanes: 8
        Duplex: Full
        Auto-negotiation: on

And I do:

# ethtool -s swp1 speed 100000 autoneg off

I get:

# ethtool swp1 | grep -A 3 'Speed: '
        Speed: 100000Mb/s
        Lanes: 4
        Duplex: Full
        Auto-negotiation: off

But if the current state is:

# ethtool swp1 | grep -A 3 'Speed: '
        Speed: 100000Mb/s
        Lanes: 2
        Duplex: Full
        Auto-negotiation: off

And I do:

# ethtool -s swp1 speed 100000 autoneg off

Nothing changes:

# ethtool swp1 | grep -A 3 'Speed: '
        Speed: 100000Mb/s
        Lanes: 2
        Duplex: Full
        Auto-negotiation: off

I expect that after this patch I will get the same result regardless of
the current state.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-03-31 13:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-30 18:38 [PATCH net] ethtool: reset #lanes when lanes is omitted Andy Roulin
2023-03-31 13:10 ` Ido Schimmel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).