diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-03-18 13:37:40 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-03-21 18:34:15 -0700 |
commit | 283f2fe87e980d8af5ad8aa63751e7e3258ee05a (patch) | |
tree | 43876fc3958a8c59cd4fd7a7815ed8fd56dcd84b /net/core/dev.c | |
parent | 907cdda5205b012eec7513f66713749b293188c9 (diff) | |
download | lwn-283f2fe87e980d8af5ad8aa63751e7e3258ee05a.tar.gz lwn-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/dev.c')
-rw-r--r-- | net/core/dev.c | 7 |
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 |