aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorBen Hutchings <bhutchings@solarflare.com>2012-12-07 01:15:32 -0500
committerDavid S. Miller <davem@davemloft.net>2012-12-07 14:35:35 -0500
commitc772dde343917b0961f75227cfb8c2b2f2b31d24 (patch)
tree381f04cf369eae7de070dda85eaa25623bbea0cd /drivers
parentee07c6e7a6f8a25c18f0a6b18152fbd7499245f6 (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.c17
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 }