diff options
author | 2019-11-07 16:27:18 -0800 | |
---|---|---|
committer | 2019-11-07 20:03:08 -0800 | |
commit | 4f77eb0941d182e94b4f54d49cf9de2b19e0a317 (patch) | |
tree | 68b6e33b821169c4aa1f7838e94a1eea8f00e507 /drivers/net/vsockmon.c | |
parent | veth: use standard dev_lstats_add() and dev_lstats_read() (diff) | |
download | linux-4f77eb0941d182e94b4f54d49cf9de2b19e0a317.tar.gz linux-4f77eb0941d182e94b4f54d49cf9de2b19e0a317.tar.bz2 linux-4f77eb0941d182e94b4f54d49cf9de2b19e0a317.zip |
vsockmon: use standard dev_lstats_add() and dev_lstats_read()
This cleanup will ease u64_stats_t adoption in a single location.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/vsockmon.c')
-rw-r--r-- | drivers/net/vsockmon.c | 31 |
1 files changed, 2 insertions, 29 deletions
diff --git a/drivers/net/vsockmon.c b/drivers/net/vsockmon.c index 14e324b84617..e8563acf98e8 100644 --- a/drivers/net/vsockmon.c +++ b/drivers/net/vsockmon.c @@ -47,13 +47,7 @@ static int vsockmon_close(struct net_device *dev) static netdev_tx_t vsockmon_xmit(struct sk_buff *skb, struct net_device *dev) { - int len = skb->len; - struct pcpu_lstats *stats = this_cpu_ptr(dev->lstats); - - u64_stats_update_begin(&stats->syncp); - stats->bytes += len; - stats->packets++; - u64_stats_update_end(&stats->syncp); + dev_lstats_add(dev, skb->len); dev_kfree_skb(skb); @@ -63,30 +57,9 @@ static netdev_tx_t vsockmon_xmit(struct sk_buff *skb, struct net_device *dev) static void vsockmon_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) { - int i; - u64 bytes = 0, packets = 0; - - for_each_possible_cpu(i) { - const struct pcpu_lstats *vstats; - u64 tbytes, tpackets; - unsigned int start; - - vstats = per_cpu_ptr(dev->lstats, i); + dev_lstats_read(dev, &stats->rx_packets, &stats->rx_bytes); - do { - start = u64_stats_fetch_begin_irq(&vstats->syncp); - tbytes = vstats->bytes; - tpackets = vstats->packets; - } while (u64_stats_fetch_retry_irq(&vstats->syncp, start)); - - packets += tpackets; - bytes += tbytes; - } - - stats->rx_packets = packets; stats->tx_packets = 0; - - stats->rx_bytes = bytes; stats->tx_bytes = 0; } |