IB/hfi1: use new function dev_fetch_sw_netstats
authorHeiner Kallweit <hkallweit1@gmail.com>
Mon, 12 Oct 2020 08:03:02 +0000 (10:03 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 14 Oct 2020 00:33:48 +0000 (17:33 -0700)
Simplify the code by using new function dev_fetch_sw_netstats().

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Link: https://lore.kernel.org/r/6cad1a04-f021-d94b-45fd-7cc7cf07367d@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/infiniband/hw/hfi1/ipoib_main.c

index 014351e..9f71b9d 100644 (file)
@@ -97,41 +97,9 @@ static void hfi1_ipoib_dev_get_stats64(struct net_device *dev,
                                       struct rtnl_link_stats64 *storage)
 {
        struct hfi1_ipoib_dev_priv *priv = hfi1_ipoib_priv(dev);
-       u64 rx_packets = 0ull;
-       u64 rx_bytes = 0ull;
-       u64 tx_packets = 0ull;
-       u64 tx_bytes = 0ull;
-       int i;
 
        netdev_stats_to_stats64(storage, &dev->stats);
-
-       for_each_possible_cpu(i) {
-               const struct pcpu_sw_netstats *stats;
-               unsigned int start;
-               u64 trx_packets;
-               u64 trx_bytes;
-               u64 ttx_packets;
-               u64 ttx_bytes;
-
-               stats = per_cpu_ptr(priv->netstats, i);
-               do {
-                       start = u64_stats_fetch_begin_irq(&stats->syncp);
-                       trx_packets = stats->rx_packets;
-                       trx_bytes = stats->rx_bytes;
-                       ttx_packets = stats->tx_packets;
-                       ttx_bytes = stats->tx_bytes;
-               } while (u64_stats_fetch_retry_irq(&stats->syncp, start));
-
-               rx_packets += trx_packets;
-               rx_bytes += trx_bytes;
-               tx_packets += ttx_packets;
-               tx_bytes += ttx_bytes;
-       }
-
-       storage->rx_packets += rx_packets;
-       storage->rx_bytes += rx_bytes;
-       storage->tx_packets += tx_packets;
-       storage->tx_bytes += tx_bytes;
+       dev_fetch_sw_netstats(storage, priv->netstats);
 }
 
 static const struct net_device_ops hfi1_ipoib_netdev_ops = {