From: Zhu Yanjun <zyjzyj2...@gmail.com> The commit 0e4d422f5f72 ("ixgbe: do not call check_link for ethtool in ixgbe_get_settings()") decreases the bonding failures. But the following time slice still results in a bonding failure.
bonding ixgbe | | | carrier_on | | | <----------------| link_up | | | | carrier_off | | get_link_speed ------->| | | As such, the nic link speed can unconditionally be gotten as a slave nic whether the link is up or not. Signed-off-by: Zhu Yanjun <zyjzyj2...@gmail.com> --- drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c index bea96b3..53edf39 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c @@ -311,7 +311,7 @@ static int ixgbe_get_settings(struct net_device *netdev, break; } - if (netif_carrier_ok(netdev)) { + if (netif_carrier_ok(netdev) || (netdev->flags & IFF_SLAVE)) { switch (adapter->link_speed) { case IXGBE_LINK_SPEED_10GB_FULL: ethtool_cmd_speed_set(ecmd, SPEED_10000); -- 1.7.9.5