From: David Decotigny <decot@xxxxxxxxxxxx> Signed-off-by: David Decotigny <decot@xxxxxxxxxxxx> --- drivers/net/bonding/bond_main.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 56b5605..df7b12a 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -374,22 +374,20 @@ down: static void bond_update_speed_duplex(struct slave *slave) { struct net_device *slave_dev = slave->dev; - struct ethtool_cmd ecmd; - u32 slave_speed; + struct ethtool_ksettings ecmd; int res; slave->speed = SPEED_UNKNOWN; slave->duplex = DUPLEX_UNKNOWN; - res = __ethtool_get_settings(slave_dev, &ecmd); + res = __ethtool_get_ksettings(slave_dev, &ecmd); if (res < 0) return; - slave_speed = ethtool_cmd_speed(&ecmd); - if (slave_speed == 0 || slave_speed == ((__u32) -1)) + if (ecmd.parent.speed == 0 || ecmd.parent.speed == ((__u32)-1)) return; - switch (ecmd.duplex) { + switch (ecmd.parent.duplex) { case DUPLEX_FULL: case DUPLEX_HALF: break; @@ -397,8 +395,8 @@ static void bond_update_speed_duplex(struct slave *slave) return; } - slave->speed = slave_speed; - slave->duplex = ecmd.duplex; + slave->speed = ecmd.parent.speed; + slave->duplex = ecmd.parent.duplex; return; } -- 2.7.0.rc3.207.g0ac5344