]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'ethtool-link_mode'
authorDavid S. Miller <davem@davemloft.net>
Wed, 7 Apr 2021 21:53:04 +0000 (14:53 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 7 Apr 2021 21:53:04 +0000 (14:53 -0700)
commit1b5e22b42dcb89f5de8e68d02452b8d9c0c28ec6
tree1bf0c01888baa1677afdaccafeacee371d466668
parentdb631676c9a1b0edcc4e9839c1fbcd72919fd0c8
parentee2f71eb154d9912028e383f357605b2649fb659
Merge branch 'ethtool-link_mode'

Danielle Ratson says:

====================
Fix link_mode derived params functionality

Currently, link_mode parameter derives 3 other link parameters, speed,
lanes and duplex, and the derived information is sent to user space.

Few bugs were found in that functionality.
First, some drivers clear the 'ethtool_link_ksettings' struct in their
get_link_ksettings() callback and cause receiving wrong link mode
information in user space. And also, some drivers can report random
values in the 'link_mode' field and cause general protection fault.

Second, the link parameters are only derived in netlink path so in ioctl
path, we don't any reasonable values.

Third, setting 'speed 10000 lanes 1' fails since the lanes parameter
wasn't set for ETHTOOL_LINK_MODE_10000baseR_FEC_BIT.

Patch #1 solves the first two problems by removing link_mode parameter
and deriving the link parameters in driver instead of ethtool.
Patch #2 solves the third one, by setting the lanes parameter for the
link_mode.

v3:
* Remove the link_mode parameter in the first patch to solve
  both two issues from patch#1 and patch#2.
* Add the second patch to solve the third issue.

v2:
* Add patch #2.
* Introduce 'cap_link_mode_supported' instead of adding a
  validity field to 'ethtool_link_ksettings' struct in patch #1.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>