net: hns3: fix for not returning problem in get_link_ksettings when phy exists
authorFuyun Liang <liangfuyun1@huawei.com>
Wed, 21 Mar 2018 07:49:30 +0000 (15:49 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 22 Mar 2018 17:12:03 +0000 (13:12 -0400)
When phy exists, phy_ethtool_ksettings_get function is enough to get the
link ksettings. If the phy exists, get_link_ksettings function can return
directly after phy_ethtool_ksettings_get is called.

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

index 513d8d6dd1adedd225bd37e6f039513ffc6ce9de..9d07116a4426a351ad598c6c52c2a19a189bfdbc 100644 (file)
@@ -569,9 +569,13 @@ static int hns3_get_link_ksettings(struct net_device *netdev,
                return -EOPNOTSUPP;
 
        /* 1.auto_neg & speed & duplex from cmd */
-       if (netdev->phydev)
+       if (netdev->phydev) {
                phy_ethtool_ksettings_get(netdev->phydev, cmd);
-       else if (h->ae_algo->ops->get_ksettings_an_result)
+
+               return 0;
+       }
+
+       if (h->ae_algo->ops->get_ksettings_an_result)
                h->ae_algo->ops->get_ksettings_an_result(h,
                                                         &cmd->base.autoneg,
                                                         &cmd->base.speed,