net: Introduce for_each_netdev_rcu() iterator
authorEric Dumazet <eric.dumazet@gmail.com>
Wed, 4 Nov 2009 13:43:23 +0000 (05:43 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Nov 2009 13:43:23 +0000 (05:43 -0800)
commitc6d14c84566d6b70ad9dc1618db0dec87cca9300
tree5ec75245cfda4d61e6b4506b6217f047ff4af01a
parentd0075634cf9d288988f57392a1f132d2053af961
net: Introduce for_each_netdev_rcu() iterator

Adds RCU management to the list of netdevices.

Convert some for_each_netdev() users to RCU version, if
it can avoid read_lock-ing dev_base_lock

Ie:
read_lock(&dev_base_loack);
for_each_netdev(net, dev)
some_action();
read_unlock(&dev_base_lock);

becomes :

rcu_read_lock();
for_each_netdev_rcu(net, dev)
some_action();
rcu_read_unlock();

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h
net/core/dev.c
net/decnet/af_decnet.c
net/decnet/dn_fib.c
net/decnet/dn_route.c
net/ipv4/devinet.c
net/ipv6/addrconf.c
net/ipv6/anycast.c
net/netrom/nr_route.c
net/rose/rose_route.c
net/sctp/protocol.c