aboutsummaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2010-03-18 13:37:40 +0000
committerDavid S. Miller <davem@davemloft.net>2010-03-21 18:34:15 -0700
commit283f2fe87e980d8af5ad8aa63751e7e3258ee05a (patch)
tree43876fc3958a8c59cd4fd7a7815ed8fd56dcd84b /net/core
parenttcp: Add SNMP counter for DEFER_ACCEPT (diff)
downloadlinux-dev-283f2fe87e980d8af5ad8aa63751e7e3258ee05a.tar.xz
linux-dev-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