提交 246c65ad 编写于 作者: E Eric Dumazet 提交者: David S. Miller

parisc: led: Use for_each_netdev_rcu()

Use for_each_netdev_rcu() and dont lock dev_base_lock anymore
Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 292f4f3c
...@@ -352,11 +352,9 @@ static __inline__ int led_get_net_activity(void) ...@@ -352,11 +352,9 @@ static __inline__ int led_get_net_activity(void)
rx_total = tx_total = 0; rx_total = tx_total = 0;
/* we are running as a workqueue task, so locking dev_base /* we are running as a workqueue task, so we can use an RCU lookup */
* for reading should be OK */
read_lock(&dev_base_lock);
rcu_read_lock(); rcu_read_lock();
for_each_netdev(&init_net, dev) { for_each_netdev_rcu(&init_net, dev) {
const struct net_device_stats *stats; const struct net_device_stats *stats;
struct in_device *in_dev = __in_dev_get_rcu(dev); struct in_device *in_dev = __in_dev_get_rcu(dev);
if (!in_dev || !in_dev->ifa_list) if (!in_dev || !in_dev->ifa_list)
...@@ -368,7 +366,6 @@ static __inline__ int led_get_net_activity(void) ...@@ -368,7 +366,6 @@ static __inline__ int led_get_net_activity(void)
tx_total += stats->tx_packets; tx_total += stats->tx_packets;
} }
rcu_read_unlock(); rcu_read_unlock();
read_unlock(&dev_base_lock);
retval = 0; retval = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
新手
引导
客服 返回
顶部