if (!phydev)
                return -ENODEV;
 
-       return phy_ethtool_ksettings_get(phydev, cmd);
+       phy_ethtool_ksettings_get(phydev, cmd);
+
+       return 0;
 }
 
 static int xge_set_link_ksettings(struct net_device *ndev,
 
                if (phydev == NULL)
                        return -ENODEV;
 
-               return phy_ethtool_ksettings_get(phydev, cmd);
+               phy_ethtool_ksettings_get(phydev, cmd);
+
+               return 0;
        } else if (pdata->phy_mode == PHY_INTERFACE_MODE_SGMII) {
                if (pdata->mdio_driver) {
                        if (!phydev)
                                return -ENODEV;
 
-                       return phy_ethtool_ksettings_get(phydev, cmd);
+                       phy_ethtool_ksettings_get(phydev, cmd);
+
+                       return 0;
                }
 
                supported = SUPPORTED_1000baseT_Full | SUPPORTED_Autoneg |
 
 
        if (bp->flags & B44_FLAG_EXTERNAL_PHY) {
                BUG_ON(!dev->phydev);
-               return phy_ethtool_ksettings_get(dev->phydev, cmd);
+               phy_ethtool_ksettings_get(dev->phydev, cmd);
+
+               return 0;
        }
 
        supported = (SUPPORTED_Autoneg);
 
        if (priv->has_phy) {
                if (!dev->phydev)
                        return -ENODEV;
-               return phy_ethtool_ksettings_get(dev->phydev, cmd);
+
+               phy_ethtool_ksettings_get(dev->phydev, cmd);
+
+               return 0;
        } else {
                cmd->base.autoneg = 0;
                cmd->base.speed = (priv->force_speed_100) ?
 
        if (!priv->phydev)
                return -ENODEV;
 
-       return phy_ethtool_ksettings_get(priv->phydev, cmd);
+       phy_ethtool_ksettings_get(priv->phydev, cmd);
+
+       return 0;
 }
 
 static int bcmgenet_set_link_ksettings(struct net_device *dev,
 
                if (!(tp->phy_flags & TG3_PHYFLG_IS_CONNECTED))
                        return -EAGAIN;
                phydev = mdiobus_get_phy(tp->mdio_bus, tp->phy_addr);
-               return phy_ethtool_ksettings_get(phydev, cmd);
+               phy_ethtool_ksettings_get(phydev, cmd);
+
+               return 0;
        }
 
        supported = (SUPPORTED_Autoneg);
 
 static int dpaa_get_link_ksettings(struct net_device *net_dev,
                                   struct ethtool_link_ksettings *cmd)
 {
-       int err;
-
        if (!net_dev->phydev) {
                netdev_dbg(net_dev, "phy device not initialized\n");
                return 0;
        }
 
-       err = phy_ethtool_ksettings_get(net_dev->phydev, cmd);
+       phy_ethtool_ksettings_get(net_dev->phydev, cmd);
 
-       return err;
+       return 0;
 }
 
 static int dpaa_set_link_ksettings(struct net_device *net_dev,
 
        if (!phydev)
                return -ENODEV;
 
-       return phy_ethtool_ksettings_get(phydev, cmd);
+       phy_ethtool_ksettings_get(phydev, cmd);
+
+       return 0;
 }
 
 static int
 
        cmd->base.duplex = duplex;
 
        if (net_dev->phydev)
-               (void)phy_ethtool_ksettings_get(net_dev->phydev, cmd);
+               phy_ethtool_ksettings_get(net_dev->phydev, cmd);
 
        link_stat = hns_nic_get_link(net_dev);
        if (!link_stat) {
 
                                   struct ethtool_link_ksettings *cmd)
 {
        struct net_device *dev = mp->dev;
-       int err;
        u32 supported, advertising;
 
-       err = phy_ethtool_ksettings_get(dev->phydev, cmd);
+       phy_ethtool_ksettings_get(dev->phydev, cmd);
 
        /*
         * The MAC does not support 1000baseT_Half.
        ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,
                                                advertising);
 
-       return err;
+       return 0;
 }
 
 static int
 
        if (unlikely(test_bit(MTK_RESETTING, &mac->hw->state)))
                return -EBUSY;
 
-       return phy_ethtool_ksettings_get(ndev->phydev, cmd);
+       phy_ethtool_ksettings_get(ndev->phydev, cmd);
+
+       return 0;
 }
 
 static int mtk_set_link_ksettings(struct net_device *ndev,
 
                                   struct ethtool_link_ksettings *cmd)
 {
        struct ravb_private *priv = netdev_priv(ndev);
-       int error = -ENODEV;
        unsigned long flags;
 
-       if (ndev->phydev) {
-               spin_lock_irqsave(&priv->lock, flags);
-               error = phy_ethtool_ksettings_get(ndev->phydev, cmd);
-               spin_unlock_irqrestore(&priv->lock, flags);
-       }
+       if (!ndev->phydev)
+               return -ENODEV;
 
-       return error;
+       spin_lock_irqsave(&priv->lock, flags);
+       phy_ethtool_ksettings_get(ndev->phydev, cmd);
+       spin_unlock_irqrestore(&priv->lock, flags);
+
+       return 0;
 }
 
 static int ravb_set_link_ksettings(struct net_device *ndev,
 
 {
        struct sh_eth_private *mdp = netdev_priv(ndev);
        unsigned long flags;
-       int ret;
 
        if (!ndev->phydev)
                return -ENODEV;
 
        spin_lock_irqsave(&mdp->lock, flags);
-       ret = phy_ethtool_ksettings_get(ndev->phydev, cmd);
+       phy_ethtool_ksettings_get(ndev->phydev, cmd);
        spin_unlock_irqrestore(&mdp->lock, flags);
 
-       return ret;
+       return 0;
 }
 
 static int sh_eth_set_link_ksettings(struct net_device *ndev,
 
 {
        struct stmmac_priv *priv = netdev_priv(dev);
        struct phy_device *phy = dev->phydev;
-       int rc;
 
        if (priv->hw->pcs & STMMAC_PCS_RGMII ||
            priv->hw->pcs & STMMAC_PCS_SGMII) {
                "link speed / duplex setting\n", dev->name);
                return -EBUSY;
        }
-       rc = phy_ethtool_ksettings_get(phy, cmd);
-       return rc;
+       phy_ethtool_ksettings_get(phy, cmd);
+       return 0;
 }
 
 static int
 
        struct cpsw_common *cpsw = priv->cpsw;
        int slave_no = cpsw_slave_index(cpsw, priv);
 
-       if (cpsw->slaves[slave_no].phy)
-               return phy_ethtool_ksettings_get(cpsw->slaves[slave_no].phy,
-                                                ecmd);
-       else
+       if (!cpsw->slaves[slave_no].phy)
                return -EOPNOTSUPP;
+
+       phy_ethtool_ksettings_get(cpsw->slaves[slave_no].phy, ecmd);
+       return 0;
 }
 
 static int cpsw_set_link_ksettings(struct net_device *ndev,
 
        struct netcp_intf *netcp = netdev_priv(ndev);
        struct phy_device *phy = ndev->phydev;
        struct gbe_intf *gbe_intf;
-       int ret;
 
        if (!phy)
                return -EINVAL;
        if (!gbe_intf->slave)
                return -EINVAL;
 
-       ret = phy_ethtool_ksettings_get(phy, cmd);
-       if (!ret)
-               cmd->base.port = gbe_intf->slave->phy_port_t;
+       phy_ethtool_ksettings_get(phy, cmd);
+       cmd->base.port = gbe_intf->slave->phy_port_t;
 
-       return ret;
+       return 0;
 }
 
 static int keystone_set_link_ksettings(struct net_device *ndev,
 
 }
 EXPORT_SYMBOL(phy_ethtool_ksettings_set);
 
-int phy_ethtool_ksettings_get(struct phy_device *phydev,
-                             struct ethtool_link_ksettings *cmd)
+void phy_ethtool_ksettings_get(struct phy_device *phydev,
+                              struct ethtool_link_ksettings *cmd)
 {
        ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,
                                                phydev->supported);
        cmd->base.autoneg = phydev->autoneg;
        cmd->base.eth_tp_mdix_ctrl = phydev->mdix_ctrl;
        cmd->base.eth_tp_mdix = phydev->mdix;
-
-       return 0;
 }
 EXPORT_SYMBOL(phy_ethtool_ksettings_get);
 
        if (!phydev)
                return -ENODEV;
 
-       return phy_ethtool_ksettings_get(phydev, cmd);
+       phy_ethtool_ksettings_get(phydev, cmd);
+
+       return 0;
 }
 EXPORT_SYMBOL(phy_ethtool_get_link_ksettings);
 
 
        if (ret < 0)
                return ret;
 
-       ret = phy_ethtool_ksettings_get(phydev, cmd);
+       phy_ethtool_ksettings_get(phydev, cmd);
 
        usb_autopm_put_interface(dev->intf);
 
 
 
        if (!phydev)
                return -ENODEV;
-       return phy_ethtool_ksettings_get(phydev, ecmd);
+
+       phy_ethtool_ksettings_get(phydev, ecmd);
+
+       return 0;
 }
 
 static int xlr_set_link_ksettings(struct net_device *ndev,
 
 void phy_stop_machine(struct phy_device *phydev);
 void phy_trigger_machine(struct phy_device *phydev, bool sync);
 int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd);
-int phy_ethtool_ksettings_get(struct phy_device *phydev,
-                             struct ethtool_link_ksettings *cmd);
+void phy_ethtool_ksettings_get(struct phy_device *phydev,
+                              struct ethtool_link_ksettings *cmd);
 int phy_ethtool_ksettings_set(struct phy_device *phydev,
                              const struct ethtool_link_ksettings *cmd);
 int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd);
 
                             struct ethtool_link_ksettings *cmd)
 {
        struct dsa_slave_priv *p = netdev_priv(dev);
-       int err = -EOPNOTSUPP;
 
-       if (p->phy != NULL)
-               err = phy_ethtool_ksettings_get(p->phy, cmd);
+       if (!p->phy)
+               return -EOPNOTSUPP;
 
-       return err;
+       phy_ethtool_ksettings_get(p->phy, cmd);
+
+       return 0;
 }
 
 static int