net: hns3: check 1000M half for hns3_ethtool_ops.set_link_ksettings
authorPeng Li <lipeng321@huawei.com>
Thu, 4 Apr 2019 08:17:48 +0000 (16:17 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 4 Apr 2019 17:20:38 +0000 (10:20 -0700)
Hip08 SOC does not support 1000M half, this patch adds 1000M half
check for hns3_ethtool_ops.set_link_ksettings, so the user can not
set 1000M half by ethtool.

Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c

index 359d473..fc82d0e 100644 (file)
@@ -648,6 +648,10 @@ static int hns3_get_link_ksettings(struct net_device *netdev,
 static int hns3_set_link_ksettings(struct net_device *netdev,
                                   const struct ethtool_link_ksettings *cmd)
 {
+       /* Chip doesn't support this mode. */
+       if (cmd->base.speed == SPEED_1000 && cmd->base.duplex == DUPLEX_HALF)
+               return -EINVAL;
+
        /* Only support ksettings_set for netdev with phy attached for now */
        if (netdev->phydev)
                return phy_ethtool_ksettings_set(netdev->phydev, cmd);