diff options
author | David S. Miller <davem@davemloft.net> | 2009-11-29 03:57:15 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-11-29 03:57:15 -0500 |
commit | 9b963e5d0e01461099a40117b05480f24b63381f (patch) | |
tree | 4756d554e37bf4ab7202f2c564cbe629af98b576 /drivers/net/veth.c | |
parent | 3b8626ba01a8a745a3fdf22dd347edd708b0af13 (diff) | |
parent | 5fdd4baef6195a1f2960e901c8877e2105f832ca (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/ieee802154/fakehard.c
drivers/net/e1000e/ich8lan.c
drivers/net/e1000e/phy.c
drivers/net/netxen/netxen_nic_init.c
drivers/net/wireless/ath/ath9k/main.c
Diffstat (limited to 'drivers/net/veth.c')
-rw-r--r-- | drivers/net/veth.c | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/drivers/net/veth.c b/drivers/net/veth.c index 6c4b5a2d7877..63099c58a6dd 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c | |||
@@ -199,32 +199,29 @@ rx_drop: | |||
199 | static struct net_device_stats *veth_get_stats(struct net_device *dev) | 199 | static struct net_device_stats *veth_get_stats(struct net_device *dev) |
200 | { | 200 | { |
201 | struct veth_priv *priv; | 201 | struct veth_priv *priv; |
202 | struct net_device_stats *dev_stats; | ||
203 | int cpu; | 202 | int cpu; |
204 | struct veth_net_stats *stats; | 203 | struct veth_net_stats *stats, total = {0}; |
205 | 204 | ||
206 | priv = netdev_priv(dev); | 205 | priv = netdev_priv(dev); |
207 | dev_stats = &dev->stats; | ||
208 | |||
209 | dev_stats->rx_packets = 0; | ||
210 | dev_stats->tx_packets = 0; | ||
211 | dev_stats->rx_bytes = 0; | ||
212 | dev_stats->tx_bytes = 0; | ||
213 | dev_stats->tx_dropped = 0; | ||
214 | dev_stats->rx_dropped = 0; | ||
215 | 206 | ||
216 | for_each_online_cpu(cpu) { | 207 | for_each_possible_cpu(cpu) { |
217 | stats = per_cpu_ptr(priv->stats, cpu); | 208 | stats = per_cpu_ptr(priv->stats, cpu); |
218 | 209 | ||
219 | dev_stats->rx_packets += stats->rx_packets; | 210 | total.rx_packets += stats->rx_packets; |
220 | dev_stats->tx_packets += stats->tx_packets; | 211 | total.tx_packets += stats->tx_packets; |
221 | dev_stats->rx_bytes += stats->rx_bytes; | 212 | total.rx_bytes += stats->rx_bytes; |
222 | dev_stats->tx_bytes += stats->tx_bytes; | 213 | total.tx_bytes += stats->tx_bytes; |
223 | dev_stats->tx_dropped += stats->tx_dropped; | 214 | total.tx_dropped += stats->tx_dropped; |
224 | dev_stats->rx_dropped += stats->rx_dropped; | 215 | total.rx_dropped += stats->rx_dropped; |
225 | } | 216 | } |
226 | 217 | dev->stats.rx_packets = total.rx_packets; | |
227 | return dev_stats; | 218 | dev->stats.tx_packets = total.tx_packets; |
219 | dev->stats.rx_bytes = total.rx_bytes; | ||
220 | dev->stats.tx_bytes = total.tx_bytes; | ||
221 | dev->stats.tx_dropped = total.tx_dropped; | ||
222 | dev->stats.rx_dropped = total.rx_dropped; | ||
223 | |||
224 | return &dev->stats; | ||
228 | } | 225 | } |
229 | 226 | ||
230 | static int veth_open(struct net_device *dev) | 227 | static int veth_open(struct net_device *dev) |