net: sunhme: Use net_device_stats from struct net_device
authorTobias Klauser <tklauser@distanz.ch>
Fri, 7 Apr 2017 08:17:35 +0000 (10:17 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 7 Apr 2017 14:03:33 +0000 (07:03 -0700)
Instead of using a private copy of struct net_device_stats in struct
happy_meal, use stats from struct net_device.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sun/sunhme.c
drivers/net/ethernet/sun/sunhme.h

index 53ff66ef53acfec77caafd90163361d80502f735..a6cc9a2d41c1992891cf6678d82cf1015372454f 100644 (file)
@@ -933,7 +933,7 @@ static void happy_meal_stop(struct happy_meal *hp, void __iomem *gregs)
 /* hp->happy_lock must be held */
 static void happy_meal_get_counters(struct happy_meal *hp, void __iomem *bregs)
 {
-       struct net_device_stats *stats = &hp->net_stats;
+       struct net_device_stats *stats = &hp->dev->stats;
 
        stats->rx_crc_errors += hme_read32(hp, bregs + BMAC_RCRCECTR);
        hme_write32(hp, bregs + BMAC_RCRCECTR, 0);
@@ -1947,7 +1947,7 @@ static void happy_meal_tx(struct happy_meal *hp)
                                break;
                }
                hp->tx_skbs[elem] = NULL;
-               hp->net_stats.tx_bytes += skb->len;
+               dev->stats.tx_bytes += skb->len;
 
                for (frag = 0; frag <= skb_shinfo(skb)->nr_frags; frag++) {
                        dma_addr = hme_read_desc32(hp, &this->tx_addr);
@@ -1964,7 +1964,7 @@ static void happy_meal_tx(struct happy_meal *hp)
                }
 
                dev_kfree_skb_irq(skb);
-               hp->net_stats.tx_packets++;
+               dev->stats.tx_packets++;
        }
        hp->tx_old = elem;
        TXD((">"));
@@ -2009,17 +2009,17 @@ static void happy_meal_rx(struct happy_meal *hp, struct net_device *dev)
                /* Check for errors. */
                if ((len < ETH_ZLEN) || (flags & RXFLAG_OVERFLOW)) {
                        RXD(("ERR(%08x)]", flags));
-                       hp->net_stats.rx_errors++;
+                       dev->stats.rx_errors++;
                        if (len < ETH_ZLEN)
-                               hp->net_stats.rx_length_errors++;
+                               dev->stats.rx_length_errors++;
                        if (len & (RXFLAG_OVERFLOW >> 16)) {
-                               hp->net_stats.rx_over_errors++;
-                               hp->net_stats.rx_fifo_errors++;
+                               dev->stats.rx_over_errors++;
+                               dev->stats.rx_fifo_errors++;
                        }
 
                        /* Return it to the Happy meal. */
        drop_it:
-                       hp->net_stats.rx_dropped++;
+                       dev->stats.rx_dropped++;
                        hme_write_rxd(hp, this,
                                      (RXFLAG_OWN|((RX_BUF_ALLOC_SIZE-RX_OFFSET)<<16)),
                                      dma_addr);
@@ -2084,8 +2084,8 @@ static void happy_meal_rx(struct happy_meal *hp, struct net_device *dev)
                skb->protocol = eth_type_trans(skb, dev);
                netif_rx(skb);
 
-               hp->net_stats.rx_packets++;
-               hp->net_stats.rx_bytes += len;
+               dev->stats.rx_packets++;
+               dev->stats.rx_bytes += len;
        next:
                elem = NEXT_RX(elem);
                this = &rxbase[elem];
@@ -2396,7 +2396,7 @@ static struct net_device_stats *happy_meal_get_stats(struct net_device *dev)
        happy_meal_get_counters(hp, hp->bigmacregs);
        spin_unlock_irq(&hp->happy_lock);
 
-       return &hp->net_stats;
+       return &dev->stats;
 }
 
 static void happy_meal_set_multicast(struct net_device *dev)
index 4a8d5b18dfd5738d9254706b84174eb801f6c562..3af540adb3c58e83b4265c77fa436d7d44da06c7 100644 (file)
@@ -418,8 +418,6 @@ struct happy_meal {
 
        int rx_new, tx_new, rx_old, tx_old;
 
-       struct net_device_stats   net_stats;      /* Statistical counters              */
-
 #if defined(CONFIG_SBUS) && defined(CONFIG_PCI)
        u32 (*read32)(void __iomem *);
        void (*write32)(void __iomem *, u32);