]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/gianfar.c
[NET] drivers/net: statistics cleanup #1 -- save memory and shrink code
[karo-tx-linux.git] / drivers / net / gianfar.c
index 002f8baaab2ddaf946685c54702b114a060de4ee..5a1a1165b48c160377a5ebd407bc72afb2f6c45c 100644 (file)
@@ -116,7 +116,6 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev);
 static void gfar_timeout(struct net_device *dev);
 static int gfar_close(struct net_device *dev);
 struct sk_buff *gfar_new_skb(struct net_device *dev, struct rxbd8 *bdp);
-static struct net_device_stats *gfar_get_stats(struct net_device *dev);
 static int gfar_set_mac_address(struct net_device *dev);
 static int gfar_change_mtu(struct net_device *dev, int new_mtu);
 static irqreturn_t gfar_error(int irq, void *dev_id);
@@ -266,7 +265,6 @@ static int gfar_probe(struct platform_device *pdev)
        dev->poll_controller = gfar_netpoll;
 #endif
        dev->stop = gfar_close;
-       dev->get_stats = gfar_get_stats;
        dev->change_mtu = gfar_change_mtu;
        dev->mtu = 1500;
        dev->set_multicast_list = gfar_set_multi;
@@ -1013,7 +1011,7 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev)
        unsigned long flags;
 
        /* Update transmit stats */
-       priv->stats.tx_bytes += skb->len;
+       dev->stats.tx_bytes += skb->len;
 
        /* Lock priv now */
        spin_lock_irqsave(&priv->txlock, flags);
@@ -1086,7 +1084,7 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev)
        if (txbdp == priv->dirty_tx) {
                netif_stop_queue(dev);
 
-               priv->stats.tx_fifo_errors++;
+               dev->stats.tx_fifo_errors++;
        }
 
        /* Update the current txbd to the next one */
@@ -1119,14 +1117,6 @@ static int gfar_close(struct net_device *dev)
        return 0;
 }
 
-/* returns a net_device_stats structure pointer */
-static struct net_device_stats * gfar_get_stats(struct net_device *dev)
-{
-       struct gfar_private *priv = netdev_priv(dev);
-
-       return &(priv->stats);
-}
-
 /* Changes the mac address if the controller is not running. */
 int gfar_set_mac_address(struct net_device *dev)
 {
@@ -1238,7 +1228,7 @@ static void gfar_timeout(struct net_device *dev)
 {
        struct gfar_private *priv = netdev_priv(dev);
 
-       priv->stats.tx_errors++;
+       dev->stats.tx_errors++;
 
        if (dev->flags & IFF_UP) {
                stop_gfar(dev);
@@ -1268,12 +1258,12 @@ static irqreturn_t gfar_transmit(int irq, void *dev_id)
                if ((bdp == priv->cur_tx) && (netif_queue_stopped(dev) == 0))
                        break;
 
-               priv->stats.tx_packets++;
+               dev->stats.tx_packets++;
 
                /* Deferred means some collisions occurred during transmit, */
                /* but we eventually sent the packet. */
                if (bdp->status & TXBD_DEF)
-                       priv->stats.collisions++;
+                       dev->stats.collisions++;
 
                /* Free the sk buffer associated with this TxBD */
                dev_kfree_skb_irq(priv->tx_skbuff[priv->skb_dirtytx]);
@@ -1345,7 +1335,7 @@ struct sk_buff * gfar_new_skb(struct net_device *dev, struct rxbd8 *bdp)
 
 static inline void count_errors(unsigned short status, struct gfar_private *priv)
 {
-       struct net_device_stats *stats = &priv->stats;
+       struct net_device_stats *stats = &dev->stats;
        struct gfar_extra_stats *estats = &priv->extra_stats;
 
        /* If the packet was truncated, none of the other errors
@@ -1470,7 +1460,7 @@ static int gfar_process_frame(struct net_device *dev, struct sk_buff *skb,
        if (NULL == skb) {
                if (netif_msg_rx_err(priv))
                        printk(KERN_WARNING "%s: Missing skb!!.\n", dev->name);
-               priv->stats.rx_dropped++;
+               dev->stats.rx_dropped++;
                priv->extra_stats.rx_skbmissing++;
        } else {
                int ret;
@@ -1528,7 +1518,7 @@ int gfar_clean_rx_ring(struct net_device *dev, int rx_work_limit)
                      (RXBD_LARGE | RXBD_SHORT | RXBD_NONOCTET
                       | RXBD_CRCERR | RXBD_OVERRUN | RXBD_TRUNCATED))) {
                        /* Increment the number of packets */
-                       priv->stats.rx_packets++;
+                       dev->stats.rx_packets++;
                        howmany++;
 
                        /* Remove the FCS from the packet length */
@@ -1536,7 +1526,7 @@ int gfar_clean_rx_ring(struct net_device *dev, int rx_work_limit)
 
                        gfar_process_frame(dev, skb, pkt_len);
 
-                       priv->stats.rx_bytes += pkt_len;
+                       dev->stats.rx_bytes += pkt_len;
                } else {
                        count_errors(bdp->status, priv);
 
@@ -1916,17 +1906,17 @@ static irqreturn_t gfar_error(int irq, void *dev_id)
 
        /* Update the error counters */
        if (events & IEVENT_TXE) {
-               priv->stats.tx_errors++;
+               dev->stats.tx_errors++;
 
                if (events & IEVENT_LC)
-                       priv->stats.tx_window_errors++;
+                       dev->stats.tx_window_errors++;
                if (events & IEVENT_CRL)
-                       priv->stats.tx_aborted_errors++;
+                       dev->stats.tx_aborted_errors++;
                if (events & IEVENT_XFUN) {
                        if (netif_msg_tx_err(priv))
                                printk(KERN_DEBUG "%s: TX FIFO underrun, "
                                       "packet dropped.\n", dev->name);
-                       priv->stats.tx_dropped++;
+                       dev->stats.tx_dropped++;
                        priv->extra_stats.tx_underrun++;
 
                        /* Reactivate the Tx Queues */
@@ -1936,7 +1926,7 @@ static irqreturn_t gfar_error(int irq, void *dev_id)
                        printk(KERN_DEBUG "%s: Transmit Error\n", dev->name);
        }
        if (events & IEVENT_BSY) {
-               priv->stats.rx_errors++;
+               dev->stats.rx_errors++;
                priv->extra_stats.rx_bsy++;
 
                gfar_receive(irq, dev_id);
@@ -1951,7 +1941,7 @@ static irqreturn_t gfar_error(int irq, void *dev_id)
                               dev->name, gfar_read(&priv->regs->rstat));
        }
        if (events & IEVENT_BABR) {
-               priv->stats.rx_errors++;
+               dev->stats.rx_errors++;
                priv->extra_stats.rx_babr++;
 
                if (netif_msg_rx_err(priv))