Commit 81c287e3 authored by Yufeng Mo's avatar Yufeng Mo Committed by Jakub Kicinski
Browse files

net: hns3: disable auto-negotiation off with 1000M setting in ethtool



The 802.3 specification does not specify the behavior of
auto-negotiation off with 1000M in PHY. Therefore, some PHY
compatibility issues occur. This patch forbids the setting of
this unreasonable mode by ethtool in driver.

Signed-off-by: default avatarYufeng Mo <moyufeng@huawei.com>
Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent b4401a04
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -773,8 +773,13 @@ static int hns3_set_link_ksettings(struct net_device *netdev,
		  cmd->base.autoneg, cmd->base.speed, cmd->base.duplex);

	/* Only support ksettings_set for netdev with phy attached for now */
	if (netdev->phydev)
	if (netdev->phydev) {
		if (cmd->base.speed == SPEED_1000 &&
		    cmd->base.autoneg == AUTONEG_DISABLE)
			return -EINVAL;

		return phy_ethtool_ksettings_set(netdev->phydev, cmd);
	}

	if (handle->pdev->revision == 0x20)
		return -EOPNOTSUPP;