parisc: led: Use for_each_netdev_rcu()
Subsystems (3)
PATCH 1/1 parisc: led: Use for_each_netdev_rcu()
Use for_each_netdev_rcu() and dont lock dev_base_lock anymore
Signed-off-by Eric Dumazet <[email protected]>
--- drivers/parisc/led.c | 7 ++----- 1 files changed, 2 insertions(+), 5 deletions(-)
drivers/parisc/led.c +2 -5
@@ -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 ;
From: Eric Dumazet <[email protected]>
Date: Tue, 10 Nov 2009 05:07:28 +0100
Quoted 3 lines
Use
for_each_netdev_rcu()and dont lockdev_base_lockanymoreSigned-off-by Eric Dumazet <[email protected]>
Applied.