diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2012-12-07 01:15:32 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-12-07 14:35:35 -0500 |
commit | c772dde343917b0961f75227cfb8c2b2f2b31d24 (patch) | |
tree | 381f04cf369eae7de070dda85eaa25623bbea0cd /drivers | |
parent | ee07c6e7a6f8a25c18f0a6b18152fbd7499245f6 (diff) |
bonding: Fix check for ethtool get_link operation support
Since commit 2c60db037034 ('net: provide a default dev->ethtool_ops')
all devices have a non-null ethtool_ops. Test only
dev->ethtool_ops->get_link in both places where we care.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/bonding/bond_main.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index c8bff3e83a5..800a8977d0a 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
@@ -615,15 +615,9 @@ static int bond_check_dev_link(struct bonding *bond, | |||
615 | return netif_carrier_ok(slave_dev) ? BMSR_LSTATUS : 0; | 615 | return netif_carrier_ok(slave_dev) ? BMSR_LSTATUS : 0; |
616 | 616 | ||
617 | /* Try to get link status using Ethtool first. */ | 617 | /* Try to get link status using Ethtool first. */ |
618 | if (slave_dev->ethtool_ops) { | 618 | if (slave_dev->ethtool_ops->get_link) |
619 | if (slave_dev->ethtool_ops->get_link) { | 619 | return slave_dev->ethtool_ops->get_link(slave_dev) ? |
620 | u32 link; | 620 | BMSR_LSTATUS : 0; |
621 | |||
622 | link = slave_dev->ethtool_ops->get_link(slave_dev); | ||
623 | |||
624 | return link ? BMSR_LSTATUS : 0; | ||
625 | } | ||
626 | } | ||
627 | 621 | ||
628 | /* Ethtool can't be used, fallback to MII ioctls. */ | 622 | /* Ethtool can't be used, fallback to MII ioctls. */ |
629 | ioctl = slave_ops->ndo_do_ioctl; | 623 | ioctl = slave_ops->ndo_do_ioctl; |
@@ -1510,8 +1504,9 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) | |||
1510 | int link_reporting; | 1504 | int link_reporting; |
1511 | int res = 0; | 1505 | int res = 0; |
1512 | 1506 | ||
1513 | if (!bond->params.use_carrier && slave_dev->ethtool_ops == NULL && | 1507 | if (!bond->params.use_carrier && |
1514 | slave_ops->ndo_do_ioctl == NULL) { | 1508 | slave_dev->ethtool_ops->get_link == NULL && |
1509 | slave_ops->ndo_do_ioctl == NULL) { | ||
1515 | pr_warning("%s: Warning: no link monitoring support for %s\n", | 1510 | pr_warning("%s: Warning: no link monitoring support for %s\n", |
1516 | bond_dev->name, slave_dev->name); | 1511 | bond_dev->name, slave_dev->name); |
1517 | } | 1512 | } |