summaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
authorEric Dumazet2010-03-18 14:37:40 +0100
committerDavid S. Miller2010-03-22 02:34:15 +0100
commit283f2fe87e980d8af5ad8aa63751e7e3258ee05a (patch)
tree43876fc3958a8c59cd4fd7a7815ed8fd56dcd84b /net/core
parenttcp: Add SNMP counter for DEFER_ACCEPT (diff)
downloadkernel-qcow2-linux-283f2fe87e980d8af5ad8aa63751e7e3258ee05a.tar.gz
kernel-qcow2-linux-283f2fe87e980d8af5ad8aa63751e7e3258ee05a.tar.xz
kernel-qcow2-linux-283f2fe87e980d8af5ad8aa63751e7e3258ee05a.zip
net: speedup netdev_set_master()
We currently force a synchronize_net() in netdev_set_master() This seems necessary only when a slave had a master and we dismantle it. In the other case ("ifenslave bond0 ethO"), we dont need this long delay. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r--net/core/dev.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index fe2a754238a9..2d01f18f303a 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3757,11 +3757,10 @@ int netdev_set_master(struct net_device *slave, struct net_device *master)
slave->master = master;
- synchronize_net();
-
- if (old)
+ if (old) {
+ synchronize_net();
dev_put(old);
-
+ }
if (master)
slave->flags |= IFF_SLAVE;
else