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 2966cd0..f426c5a 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!");