ipvlan: adopt u64_stats_t
[linux-2.6-microblaze.git] / drivers / net / ipvlan / ipvlan_main.c
index aa28a29..49ba8a5 100644 (file)
@@ -224,8 +224,8 @@ static netdev_tx_t ipvlan_start_xmit(struct sk_buff *skb,
                pcptr = this_cpu_ptr(ipvlan->pcpu_stats);
 
                u64_stats_update_begin(&pcptr->syncp);
-               pcptr->tx_pkts++;
-               pcptr->tx_bytes += skblen;
+               u64_stats_inc(&pcptr->tx_pkts);
+               u64_stats_add(&pcptr->tx_bytes, skblen);
                u64_stats_update_end(&pcptr->syncp);
        } else {
                this_cpu_inc(ipvlan->pcpu_stats->tx_drps);
@@ -300,11 +300,11 @@ static void ipvlan_get_stats64(struct net_device *dev,
                        pcptr = per_cpu_ptr(ipvlan->pcpu_stats, idx);
                        do {
                                strt= u64_stats_fetch_begin_irq(&pcptr->syncp);
-                               rx_pkts = pcptr->rx_pkts;
-                               rx_bytes = pcptr->rx_bytes;
-                               rx_mcast = pcptr->rx_mcast;
-                               tx_pkts = pcptr->tx_pkts;
-                               tx_bytes = pcptr->tx_bytes;
+                               rx_pkts = u64_stats_read(&pcptr->rx_pkts);
+                               rx_bytes = u64_stats_read(&pcptr->rx_bytes);
+                               rx_mcast = u64_stats_read(&pcptr->rx_mcast);
+                               tx_pkts = u64_stats_read(&pcptr->tx_pkts);
+                               tx_bytes = u64_stats_read(&pcptr->tx_bytes);
                        } while (u64_stats_fetch_retry_irq(&pcptr->syncp,
                                                           strt));
 
@@ -315,8 +315,8 @@ static void ipvlan_get_stats64(struct net_device *dev,
                        s->tx_bytes += tx_bytes;
 
                        /* u32 values are updated without syncp protection. */
-                       rx_errs += pcptr->rx_errs;
-                       tx_drps += pcptr->tx_drps;
+                       rx_errs += READ_ONCE(pcptr->rx_errs);
+                       tx_drps += READ_ONCE(pcptr->tx_drps);
                }
                s->rx_errors = rx_errs;
                s->rx_dropped = rx_errs;