--- v3
+++ v4
@@ -2,37 +2,50 @@
Signed-off-by: David Decotigny <decot@googlers.com>
---
- drivers/net/macvlan.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
+ drivers/net/bonding/bond_main.c | 14 ++++++--------
+ 1 file changed, 6 insertions(+), 8 deletions(-)
-diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
-index 06c8bfe..a95b793 100644
---- a/drivers/net/macvlan.c
-+++ b/drivers/net/macvlan.c
-@@ -940,12 +940,12 @@ static void macvlan_ethtool_get_drvinfo(struct net_device *dev,
- strlcpy(drvinfo->version, "0.1", sizeof(drvinfo->version));
+diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
+index fe0e7a6..ce8c026 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;
}
-
--static int macvlan_ethtool_get_settings(struct net_device *dev,
-- struct ethtool_cmd *cmd)
-+static int macvlan_ethtool_get_ksettings(struct net_device *dev,
-+ struct ethtool_ksettings *cmd)
- {
- const struct macvlan_dev *vlan = netdev_priv(dev);
-
-- return __ethtool_get_settings(vlan->lowerdev, cmd);
-+ return __ethtool_get_ksettings(vlan->lowerdev, cmd);
- }
-
- static netdev_features_t macvlan_fix_features(struct net_device *dev,
-@@ -1020,7 +1020,7 @@ static int macvlan_dev_get_iflink(const struct net_device *dev)
-
- static const struct ethtool_ops macvlan_ethtool_ops = {
- .get_link = ethtool_op_get_link,
-- .get_settings = macvlan_ethtool_get_settings,
-+ .get_ksettings = macvlan_ethtool_get_ksettings,
- .get_drvinfo = macvlan_ethtool_get_drvinfo,
- };
-
--
2.6.0.rc2.230.g3dd15c0