aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390
diff options
context:
space:
mode:
authorstephen hemminger <shemminger@vyatta.com>2009-11-10 02:54:52 -0500
committerDavid S. Miller <davem@davemloft.net>2009-11-11 01:26:31 -0500
commite576b9ef41c2c1b13e0c123b6e9d0589723c68bf (patch)
treecf0873d69e78d633e1fdadef4b66f61e2341b993 /arch/s390
parentf1e9016da6d0f16551d90085758ae45d26826118 (diff)
s390: use RCU to walk list of network devices
This is similar to other cases where for_each_netdev_rcu can be used when gathering information. By inspection, don't have platform or cross-build environment to validate. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/appldata/appldata_net_sum.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/s390/appldata/appldata_net_sum.c b/arch/s390/appldata/appldata_net_sum.c
index fa741f84c5b9..4ce7fa95880f 100644
--- a/arch/s390/appldata/appldata_net_sum.c
+++ b/arch/s390/appldata/appldata_net_sum.c
@@ -83,8 +83,9 @@ static void appldata_get_net_sum_data(void *data)
83 rx_dropped = 0; 83 rx_dropped = 0;
84 tx_dropped = 0; 84 tx_dropped = 0;
85 collisions = 0; 85 collisions = 0;
86 read_lock(&dev_base_lock); 86
87 for_each_netdev(&init_net, dev) { 87 rcu_read_lock();
88 for_each_netdev_rcu(&init_net, dev) {
88 const struct net_device_stats *stats = dev_get_stats(dev); 89 const struct net_device_stats *stats = dev_get_stats(dev);
89 90
90 rx_packets += stats->rx_packets; 91 rx_packets += stats->rx_packets;
@@ -98,7 +99,8 @@ static void appldata_get_net_sum_data(void *data)
98 collisions += stats->collisions; 99 collisions += stats->collisions;
99 i++; 100 i++;
100 } 101 }
101 read_unlock(&dev_base_lock); 102 rcu_read_unlock();
103
102 net_data->nr_interfaces = i; 104 net_data->nr_interfaces = i;
103 net_data->rx_packets = rx_packets; 105 net_data->rx_packets = rx_packets;
104 net_data->tx_packets = tx_packets; 106 net_data->tx_packets = tx_packets;