net: fs_enet: Use net_device_stats from struct net_device
authorTobias Klauser <tklauser@distanz.ch>
Wed, 19 Oct 2016 09:24:57 +0000 (11:24 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 19 Oct 2016 14:37:04 +0000 (10:37 -0400)
Instead of using a private copy of struct net_device_stats in struct
fs_enet_private, use stats from struct net_device. Also remove the now
unnecessary .ndo_get_stats function.

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

index 925d1bc..44f50e1 100644 (file)
@@ -118,22 +118,22 @@ static int fs_enet_napi(struct napi_struct *napi, int budget)
                          BD_ENET_TX_RL | BD_ENET_TX_UN | BD_ENET_TX_CSL)) {
 
                        if (sc & BD_ENET_TX_HB) /* No heartbeat */
-                               fep->stats.tx_heartbeat_errors++;
+                               dev->stats.tx_heartbeat_errors++;
                        if (sc & BD_ENET_TX_LC) /* Late collision */
-                               fep->stats.tx_window_errors++;
+                               dev->stats.tx_window_errors++;
                        if (sc & BD_ENET_TX_RL) /* Retrans limit */
-                               fep->stats.tx_aborted_errors++;
+                               dev->stats.tx_aborted_errors++;
                        if (sc & BD_ENET_TX_UN) /* Underrun */
-                               fep->stats.tx_fifo_errors++;
+                               dev->stats.tx_fifo_errors++;
                        if (sc & BD_ENET_TX_CSL)        /* Carrier lost */
-                               fep->stats.tx_carrier_errors++;
+                               dev->stats.tx_carrier_errors++;
 
                        if (sc & (BD_ENET_TX_LC | BD_ENET_TX_RL | BD_ENET_TX_UN)) {
-                               fep->stats.tx_errors++;
+                               dev->stats.tx_errors++;
                                do_restart = 1;
                        }
                } else
-                       fep->stats.tx_packets++;
+                       dev->stats.tx_packets++;
 
                if (sc & BD_ENET_TX_READY) {
                        dev_warn(fep->dev,
@@ -145,7 +145,7 @@ static int fs_enet_napi(struct napi_struct *napi, int budget)
                 * but we eventually sent the packet OK.
                 */
                if (sc & BD_ENET_TX_DEF)
-                       fep->stats.collisions++;
+                       dev->stats.collisions++;
 
                /* unmap */
                if (fep->mapped_as_page[dirtyidx])
@@ -212,19 +212,19 @@ static int fs_enet_napi(struct napi_struct *napi, int budget)
                 */
                if (sc & (BD_ENET_RX_LG | BD_ENET_RX_SH | BD_ENET_RX_CL |
                          BD_ENET_RX_NO | BD_ENET_RX_CR | BD_ENET_RX_OV)) {
-                       fep->stats.rx_errors++;
+                       dev->stats.rx_errors++;
                        /* Frame too long or too short. */
                        if (sc & (BD_ENET_RX_LG | BD_ENET_RX_SH))
-                               fep->stats.rx_length_errors++;
+                               dev->stats.rx_length_errors++;
                        /* Frame alignment */
                        if (sc & (BD_ENET_RX_NO | BD_ENET_RX_CL))
-                               fep->stats.rx_frame_errors++;
+                               dev->stats.rx_frame_errors++;
                        /* CRC Error */
                        if (sc & BD_ENET_RX_CR)
-                               fep->stats.rx_crc_errors++;
+                               dev->stats.rx_crc_errors++;
                        /* FIFO overrun */
                        if (sc & BD_ENET_RX_OV)
-                               fep->stats.rx_crc_errors++;
+                               dev->stats.rx_crc_errors++;
 
                        skbn = fep->rx_skbuff[curidx];
                } else {
@@ -233,9 +233,9 @@ static int fs_enet_napi(struct napi_struct *napi, int budget)
                        /*
                         * Process the incoming frame.
                         */
-                       fep->stats.rx_packets++;
+                       dev->stats.rx_packets++;
                        pkt_len = CBDR_DATLEN(bdp) - 4; /* remove CRC */
-                       fep->stats.rx_bytes += pkt_len + 4;
+                       dev->stats.rx_bytes += pkt_len + 4;
 
                        if (pkt_len <= fpi->rx_copybreak) {
                                /* +2 to make IP header L1 cache aligned */
@@ -277,7 +277,7 @@ static int fs_enet_napi(struct napi_struct *napi, int budget)
                                received++;
                                netif_receive_skb(skb);
                        } else {
-                               fep->stats.rx_dropped++;
+                               dev->stats.rx_dropped++;
                                skbn = skb;
                        }
                }
@@ -543,7 +543,7 @@ static int fs_enet_start_xmit(struct sk_buff *skb, struct net_device *dev)
        curidx = bdp - fep->tx_bd_base;
 
        len = skb->len;
-       fep->stats.tx_bytes += len;
+       dev->stats.tx_bytes += len;
        if (nr_frags)
                len -= skb->data_len;
        fep->tx_free -= nr_frags + 1;
@@ -619,7 +619,7 @@ static void fs_timeout(struct net_device *dev)
        unsigned long flags;
        int wake = 0;
 
-       fep->stats.tx_errors++;
+       dev->stats.tx_errors++;
 
        spin_lock_irqsave(&fep->lock, flags);
 
@@ -774,12 +774,6 @@ static int fs_enet_close(struct net_device *dev)
        return 0;
 }
 
-static struct net_device_stats *fs_enet_get_stats(struct net_device *dev)
-{
-       struct fs_enet_private *fep = netdev_priv(dev);
-       return &fep->stats;
-}
-
 /*************************************************************************/
 
 static void fs_get_drvinfo(struct net_device *dev,
@@ -905,7 +899,6 @@ extern void fs_mii_disconnect(struct net_device *dev);
 static const struct net_device_ops fs_enet_netdev_ops = {
        .ndo_open               = fs_enet_open,
        .ndo_stop               = fs_enet_close,
-       .ndo_get_stats          = fs_enet_get_stats,
        .ndo_start_xmit         = fs_enet_start_xmit,
        .ndo_tx_timeout         = fs_timeout,
        .ndo_set_rx_mode        = fs_set_multicast_list,
index fee24c8..5ce516c 100644 (file)
@@ -137,7 +137,6 @@ struct fs_enet_private {
        cbd_t __iomem *cur_rx;
        cbd_t __iomem *cur_tx;
        int tx_free;
-       struct net_device_stats stats;
        struct timer_list phy_timer_list;
        const struct phy_info *phy;
        u32 msg_enable;