ethtool: Set cmd field in ETHTOOL_GLINKSETTINGS response to wrong nwords
authorBen Hutchings <ben@decadent.org.uk>
Mon, 14 Mar 2016 01:05:38 +0000 (01:05 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 Mar 2016 23:26:04 +0000 (19:26 -0400)
When the ETHTOOL_GLINKSETTINGS implementation finds that userland is
using the wrong number of words of link mode bitmaps (or is trying to
find out the right numbers) it sets the cmd field to 0 in the response
structure.

This is inconsistent with the implementation of every other ethtool
command, so let's remove that inconsistency before it gets into a
stable release.

Fixes: 3f1ac7a700d03 ("net: ethtool: add new ETHTOOL_xLINKSETTINGS API")
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/ethtool.c

index 2966cd0d7c934c50f0b5c49f10ac38deb288c1fd..f426c5ad6149deefb55f9aa9fccd3b1392206357 100644 (file)
@@ -655,7 +655,7 @@ static int ethtool_get_link_ksettings(struct net_device *dev,
            != link_ksettings.base.link_mode_masks_nwords) {
                /* wrong link mode nbits requested */
                memset(&link_ksettings, 0, sizeof(link_ksettings));
-               /* keep cmd field reset to 0 */
+               link_ksettings.base.cmd = ETHTOOL_GLINKSETTINGS;
                /* send back number of words required as negative val */
                compiletime_assert(__ETHTOOL_LINK_MODE_MASK_NU32 <= S8_MAX,
                                   "need too many bits for link modes!");