diff options
Diffstat (limited to 'drivers/net/bonding/bond_main.c')
| -rw-r--r-- | drivers/net/bonding/bond_main.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 8cb75a6efec3..1dcb07ce5263 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
| @@ -557,7 +557,7 @@ down: | |||
| 557 | static int bond_update_speed_duplex(struct slave *slave) | 557 | static int bond_update_speed_duplex(struct slave *slave) |
| 558 | { | 558 | { |
| 559 | struct net_device *slave_dev = slave->dev; | 559 | struct net_device *slave_dev = slave->dev; |
| 560 | struct ethtool_cmd etool = { .cmd = ETHTOOL_GSET }; | 560 | struct ethtool_cmd ecmd; |
| 561 | u32 slave_speed; | 561 | u32 slave_speed; |
| 562 | int res; | 562 | int res; |
| 563 | 563 | ||
| @@ -565,18 +565,15 @@ static int bond_update_speed_duplex(struct slave *slave) | |||
| 565 | slave->speed = SPEED_100; | 565 | slave->speed = SPEED_100; |
| 566 | slave->duplex = DUPLEX_FULL; | 566 | slave->duplex = DUPLEX_FULL; |
| 567 | 567 | ||
| 568 | if (!slave_dev->ethtool_ops || !slave_dev->ethtool_ops->get_settings) | 568 | res = __ethtool_get_settings(slave_dev, &ecmd); |
| 569 | return -1; | ||
| 570 | |||
| 571 | res = slave_dev->ethtool_ops->get_settings(slave_dev, &etool); | ||
| 572 | if (res < 0) | 569 | if (res < 0) |
| 573 | return -1; | 570 | return -1; |
| 574 | 571 | ||
| 575 | slave_speed = ethtool_cmd_speed(&etool); | 572 | slave_speed = ethtool_cmd_speed(&ecmd); |
| 576 | if (slave_speed == 0 || slave_speed == ((__u32) -1)) | 573 | if (slave_speed == 0 || slave_speed == ((__u32) -1)) |
| 577 | return -1; | 574 | return -1; |
| 578 | 575 | ||
| 579 | switch (etool.duplex) { | 576 | switch (ecmd.duplex) { |
| 580 | case DUPLEX_FULL: | 577 | case DUPLEX_FULL: |
| 581 | case DUPLEX_HALF: | 578 | case DUPLEX_HALF: |
| 582 | break; | 579 | break; |
| @@ -585,7 +582,7 @@ static int bond_update_speed_duplex(struct slave *slave) | |||
| 585 | } | 582 | } |
| 586 | 583 | ||
| 587 | slave->speed = slave_speed; | 584 | slave->speed = slave_speed; |
| 588 | slave->duplex = etool.duplex; | 585 | slave->duplex = ecmd.duplex; |
| 589 | 586 | ||
| 590 | return 0; | 587 | return 0; |
| 591 | } | 588 | } |
