From 74219653ffa001cfd33a9ceef43d720b1bc1d524 Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Mon, 9 Nov 2009 18:07:28 +0000 Subject: [PATCH] --- yaml --- r: 171489 b: refs/heads/master c: 246c65add098a5ec14310ea17f39fdd57ff8407d h: refs/heads/master i: 171487: 137abddb4bd1174875f8cd3bc607538af3e3eaa9 v: v3 --- [refs] | 2 +- trunk/drivers/parisc/led.c | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 6e4e218f30f4..b9b81af8744b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 292f4f3ce4b57f17a667cb34c72bca081dcc0281 +refs/heads/master: 246c65add098a5ec14310ea17f39fdd57ff8407d diff --git a/trunk/drivers/parisc/led.c b/trunk/drivers/parisc/led.c index 9581d3619450..79caf1ca4a29 100644 --- a/trunk/drivers/parisc/led.c +++ b/trunk/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;