aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bonding/bond_3ad.c
diff options
context:
space:
mode:
authorMichał Mirosław <mirq-linux@rere.qmqm.pl>2011-05-07 01:48:02 +0000
committerDavid S. Miller <davem@davemloft.net>2011-05-09 12:05:59 -0700
commit0693e88e6ccf615d9674548d8b924cdd9a1c976c (patch)
treec77546505f150e1e6c8a9a8390e7dc01a292d13d /drivers/net/bonding/bond_3ad.c
parent48752e1b1802231ef2a076f34d861918b7d571c3 (diff)
downloadkernel_samsung_smdk4412-0693e88e6ccf615d9674548d8b924cdd9a1c976c.zip
kernel_samsung_smdk4412-0693e88e6ccf615d9674548d8b924cdd9a1c976c.tar.gz
kernel_samsung_smdk4412-0693e88e6ccf615d9674548d8b924cdd9a1c976c.tar.bz2
net: bonding: factor out rlock(bond->lock) in xmit path
Pull read_lock(&bond->lock) and BOND_IS_OK() to bond_start_xmit() from mode-dependent xmit functions. netif_running() is always true in hard_start_xmit. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bonding/bond_3ad.c')
-rw-r--r--drivers/net/bonding/bond_3ad.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index d4160f8..c7537abc 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -2403,14 +2403,6 @@ int bond_3ad_xmit_xor(struct sk_buff *skb, struct net_device *dev)
struct ad_info ad_info;
int res = 1;
- /* make sure that the slaves list will
- * not change during tx
- */
- read_lock(&bond->lock);
-
- if (!BOND_IS_OK(bond))
- goto out;
-
if (bond_3ad_get_active_agg_info(bond, &ad_info)) {
pr_debug("%s: Error: bond_3ad_get_active_agg_info failed\n",
dev->name);
@@ -2464,7 +2456,7 @@ out:
/* no suitable interface, frame not sent */
dev_kfree_skb(skb);
}
- read_unlock(&bond->lock);
+
return NETDEV_TX_OK;
}