net: bonding: use __ethtool_get_ksettings
authorDavid Decotigny <decot@googlers.com>
Wed, 24 Feb 2016 18:58:02 +0000 (10:58 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 26 Feb 2016 03:06:46 +0000 (22:06 -0500)
Signed-off-by: David Decotigny <decot@googlers.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_main.c

index a6527d5..b6236ff 100644 (file)
@@ -376,22 +376,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_link_ksettings ecmd;
        int res;
 
        slave->speed = SPEED_UNKNOWN;
        slave->duplex = DUPLEX_UNKNOWN;
 
-       res = __ethtool_get_settings(slave_dev, &ecmd);
+       res = __ethtool_get_link_ksettings(slave_dev, &ecmd);
        if (res < 0)
                return;
 
-       slave_speed = ethtool_cmd_speed(&ecmd);
-       if (slave_speed == 0 || slave_speed == ((__u32) -1))
+       if (ecmd.base.speed == 0 || ecmd.base.speed == ((__u32)-1))
                return;
 
-       switch (ecmd.duplex) {
+       switch (ecmd.base.duplex) {
        case DUPLEX_FULL:
        case DUPLEX_HALF:
                break;
@@ -399,8 +397,8 @@ static void bond_update_speed_duplex(struct slave *slave)
                return;
        }
 
-       slave->speed = slave_speed;
-       slave->duplex = ecmd.duplex;
+       slave->speed = ecmd.base.speed;
+       slave->duplex = ecmd.base.duplex;
 
        return;
 }