diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2009-11-09 18:07:28 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-11-10 20:54:43 -0800 |
commit | 246c65add098a5ec14310ea17f39fdd57ff8407d (patch) | |
tree | 93bb9ab5df89b2aa0d5d1ce1dd04e82f6c1c14d5 | |
parent | 292f4f3ce4b57f17a667cb34c72bca081dcc0281 (diff) |
parisc: led: Use for_each_netdev_rcu()
Use for_each_netdev_rcu() and dont lock dev_base_lock anymore
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/parisc/led.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/parisc/led.c b/drivers/parisc/led.c index 9581d361945..79caf1ca4a2 100644 --- a/drivers/parisc/led.c +++ b/drivers/parisc/led.c @@ -352,11 +352,9 @@ static __inline__ int led_get_net_activity(void) rx_total = tx_total = 0; - /* we are running as a workqueue task, so locking dev_base - * for reading should be OK */ - read_lock(&dev_base_lock); + /* we are running as a workqueue task, so we can use an RCU lookup */ rcu_read_lock(); - for_each_netdev(&init_net, dev) { + for_each_netdev_rcu(&init_net, dev) { const struct net_device_stats *stats; struct in_device *in_dev = __in_dev_get_rcu(dev); if (!in_dev || !in_dev->ifa_list) @@ -368,7 +366,6 @@ static __inline__ int led_get_net_activity(void) tx_total += stats->tx_packets; } rcu_read_unlock(); - read_unlock(&dev_base_lock); retval = 0; |