Message ID | 6e02aaab-18fe-692d-52cb-71212db44ade@nvidia.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] ethtool: reset #lanes when lanes is omitted | expand |
On Thu, 30 Mar 2023 09:56:58 -0700 Andy Roulin wrote: > Subject: [PATCH net-next] ethtool: reset #lanes when lanes is omitted This should have been tagged for net, right? > 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>
On 3/30/23 10:38 AM, Jakub Kicinski wrote: > On Thu, 30 Mar 2023 09:56:58 -0700 Andy Roulin wrote: >> Subject: [PATCH net-next] ethtool: reset #lanes when lanes is omitted > > This should have been tagged for net, right? > Yes, sorry, I will resend. >> 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>
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,