On 11/02/2017 09:18 PM, Lipeng wrote:
> From: Fuyun Liang <liangfuy...@huawei.com>
> 
> This patch adds nway_reset support for ethtool cmd.
> 
> Signed-off-by: Fuyun Liang <liangfuy...@huawei.com>
> Signed-off-by: Lipeng <lipeng...@huawei.com>
> ---
>  .../net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c  | 18 
> ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c 
> b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c
> index 7fe193b..a21470c 100644
> --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c
> +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c
> @@ -832,6 +832,23 @@ static int hns3_set_rxnfc(struct net_device *netdev, 
> struct ethtool_rxnfc *cmd)
>       }
>  }
>  
> +static int hns3_nway_reset(struct net_device *netdev)
> +{
> +     struct phy_device *phy = netdev->phydev;
> +
> +     if (!netif_running(netdev))
> +             return 0;
> +
> +     /* Only support nway_reset for netdev with phy attached for now */
> +     if (!phy)
> +             return -EOPNOTSUPP;
> +
> +     if (phy->autoneg != AUTONEG_ENABLE)
> +             return -EINVAL;
> +
> +     return genphy_restart_aneg(phy);

Consider using phy_ethtool_nway_reset() which properly checks for
phydev->drv (you don't). phy_restart_aneg() already checks for
phydev->autoneg.
-- 
Florian

Reply via email to