ethtool: v5.7
kernel: v5.4.52
driver: r8169 + libphy

Starting from v5.7, all ethtool --change commands fail to apply and
show the following error message:

$ ethtool -s ens5 autoneg off
netlink error: No such file or directory
Cannot set new settings: No such file or directory
  not setting autoneg

'git bisect' points to:
8bb9a04 (ethtool.c: Report transceiver correctly)

After debugging I found that this commit sets deprecated.transceiver
and then do_ioctl_slinksettings() checks for it and returns -1.
errno is thus invalid and the the error message is bogus.

With debugging enabled:

$ ethtool --debug 0xffff -s ens5 autoneg off
sending genetlink packet (32 bytes):
    msg length 32 genl-ctrl
    CTRL_CMD_GETFAMILY
        CTRL_ATTR_FAMILY_NAME = "ethtool"
<message dump/>
received genetlink packet (52 bytes):
    msg length 52 error errno=-2
<message dump/>
netlink error: No such file or directory
offending message:
    ETHTOOL_MSG_LINKINFO_SET
        ETHTOOL_A_LINKINFO_PORT = 101
Cannot set new settings: No such file or directory
  not setting autoneg

Reply via email to