net: ethernet: stmmac: add missing sgmii configure for ipq806x
[linux-2.6-microblaze.git] / drivers / net / macvlan.c
index eff75be..1080d6e 100644 (file)
@@ -575,8 +575,8 @@ static netdev_tx_t macvlan_start_xmit(struct sk_buff *skb,
 
                pcpu_stats = this_cpu_ptr(vlan->pcpu_stats);
                u64_stats_update_begin(&pcpu_stats->syncp);
-               pcpu_stats->tx_packets++;
-               pcpu_stats->tx_bytes += len;
+               u64_stats_inc(&pcpu_stats->tx_packets);
+               u64_stats_add(&pcpu_stats->tx_bytes, len);
                u64_stats_update_end(&pcpu_stats->syncp);
        } else {
                this_cpu_inc(vlan->pcpu_stats->tx_dropped);
@@ -915,7 +915,7 @@ static int macvlan_init(struct net_device *dev)
        port->count += 1;
 
        /* Get macvlan's reference to lowerdev */
-       dev_hold_track(lowerdev, &vlan->dev_tracker, GFP_KERNEL);
+       netdev_hold(lowerdev, &vlan->dev_tracker, GFP_KERNEL);
 
        return 0;
 }
@@ -949,11 +949,11 @@ static void macvlan_dev_get_stats64(struct net_device *dev,
                        p = per_cpu_ptr(vlan->pcpu_stats, i);
                        do {
                                start = u64_stats_fetch_begin_irq(&p->syncp);
-                               rx_packets      = p->rx_packets;
-                               rx_bytes        = p->rx_bytes;
-                               rx_multicast    = p->rx_multicast;
-                               tx_packets      = p->tx_packets;
-                               tx_bytes        = p->tx_bytes;
+                               rx_packets      = u64_stats_read(&p->rx_packets);
+                               rx_bytes        = u64_stats_read(&p->rx_bytes);
+                               rx_multicast    = u64_stats_read(&p->rx_multicast);
+                               tx_packets      = u64_stats_read(&p->tx_packets);
+                               tx_bytes        = u64_stats_read(&p->tx_bytes);
                        } while (u64_stats_fetch_retry_irq(&p->syncp, start));
 
                        stats->rx_packets       += rx_packets;
@@ -964,8 +964,8 @@ static void macvlan_dev_get_stats64(struct net_device *dev,
                        /* rx_errors & tx_dropped are u32, updated
                         * without syncp protection.
                         */
-                       rx_errors       += p->rx_errors;
-                       tx_dropped      += p->tx_dropped;
+                       rx_errors       += READ_ONCE(p->rx_errors);
+                       tx_dropped      += READ_ONCE(p->tx_dropped);
                }
                stats->rx_errors        = rx_errors;
                stats->rx_dropped       = rx_errors;
@@ -1185,7 +1185,7 @@ static void macvlan_dev_free(struct net_device *dev)
        struct macvlan_dev *vlan = netdev_priv(dev);
 
        /* Get rid of the macvlan's reference to lowerdev */
-       dev_put_track(vlan->lowerdev, &vlan->dev_tracker);
+       netdev_put(vlan->lowerdev, &vlan->dev_tracker);
 }
 
 void macvlan_common_setup(struct net_device *dev)