[NET] drivers/net: statistics cleanup #1 -- save memory and shrink code
[deliverable/linux.git] / drivers / net / sis900.c
index e1930c3ee75da0963c5c049ef42761f3ccbe9f71..5da8e671324dd1e11dc05bb2bbd4f988c012ee88 100644 (file)
@@ -158,7 +158,6 @@ typedef struct _BufferDesc {
 } BufferDesc;
 
 struct sis900_private {
-       struct net_device_stats stats;
        struct pci_dev * pci_dev;
 
        spinlock_t lock;
@@ -221,7 +220,6 @@ static void sis900_finish_xmit (struct net_device *net_dev);
 static irqreturn_t sis900_interrupt(int irq, void *dev_instance);
 static int sis900_close(struct net_device *net_dev);
 static int mii_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd);
-static struct net_device_stats *sis900_get_stats(struct net_device *net_dev);
 static u16 sis900_mcast_bitnr(u8 *addr, u8 revision);
 static void set_rx_mode(struct net_device *net_dev);
 static void sis900_reset(struct net_device *net_dev);
@@ -466,7 +464,6 @@ static int __devinit sis900_probe(struct pci_dev *pci_dev,
        net_dev->open = &sis900_open;
        net_dev->hard_start_xmit = &sis900_start_xmit;
        net_dev->stop = &sis900_close;
-       net_dev->get_stats = &sis900_get_stats;
        net_dev->set_config = &sis900_set_config;
        net_dev->set_multicast_list = &set_rx_mode;
        net_dev->do_ioctl = &mii_ioctl;
@@ -1542,7 +1539,7 @@ static void sis900_tx_timeout(struct net_device *net_dev)
                        sis_priv->tx_skbuff[i] = NULL;
                        sis_priv->tx_ring[i].cmdsts = 0;
                        sis_priv->tx_ring[i].bufptr = 0;
-                       sis_priv->stats.tx_dropped++;
+                       net_dev->stats.tx_dropped++;
                }
        }
        sis_priv->tx_full = 0;
@@ -1739,15 +1736,15 @@ static int sis900_rx(struct net_device *net_dev)
                                printk(KERN_DEBUG "%s: Corrupted packet "
                                       "received, buffer status = 0x%8.8x/%d.\n",
                                       net_dev->name, rx_status, data_size);
-                       sis_priv->stats.rx_errors++;
+                       net_dev->stats.rx_errors++;
                        if (rx_status & OVERRUN)
-                               sis_priv->stats.rx_over_errors++;
+                               net_dev->stats.rx_over_errors++;
                        if (rx_status & (TOOLONG|RUNT))
-                               sis_priv->stats.rx_length_errors++;
+                               net_dev->stats.rx_length_errors++;
                        if (rx_status & (RXISERR | FAERR))
-                               sis_priv->stats.rx_frame_errors++;
+                               net_dev->stats.rx_frame_errors++;
                        if (rx_status & CRCERR)
-                               sis_priv->stats.rx_crc_errors++;
+                               net_dev->stats.rx_crc_errors++;
                        /* reset buffer descriptor state */
                        sis_priv->rx_ring[entry].cmdsts = RX_BUF_SIZE;
                } else {
@@ -1768,7 +1765,7 @@ static int sis900_rx(struct net_device *net_dev)
                                 * in the rx ring
                                 */
                                skb = sis_priv->rx_skbuff[entry];
-                               sis_priv->stats.rx_dropped++;
+                               net_dev->stats.rx_dropped++;
                                goto refill_rx_ring;
                        }       
 
@@ -1793,10 +1790,10 @@ static int sis900_rx(struct net_device *net_dev)
 
                        /* some network statistics */
                        if ((rx_status & BCAST) == MCAST)
-                               sis_priv->stats.multicast++;
+                               net_dev->stats.multicast++;
                        net_dev->last_rx = jiffies;
-                       sis_priv->stats.rx_bytes += rx_size;
-                       sis_priv->stats.rx_packets++;
+                       net_dev->stats.rx_bytes += rx_size;
+                       net_dev->stats.rx_packets++;
                        sis_priv->dirty_rx++;
 refill_rx_ring:
                        sis_priv->rx_skbuff[entry] = skb;
@@ -1827,7 +1824,7 @@ refill_rx_ring:
                                        printk(KERN_INFO "%s: Memory squeeze,"
                                                "deferring packet.\n",
                                                net_dev->name);
-                               sis_priv->stats.rx_dropped++;
+                               net_dev->stats.rx_dropped++;
                                break;
                        }
                        sis_priv->rx_skbuff[entry] = skb;
@@ -1878,20 +1875,20 @@ static void sis900_finish_xmit (struct net_device *net_dev)
                                printk(KERN_DEBUG "%s: Transmit "
                                       "error, Tx status %8.8x.\n",
                                       net_dev->name, tx_status);
-                       sis_priv->stats.tx_errors++;
+                       net_dev->stats.tx_errors++;
                        if (tx_status & UNDERRUN)
-                               sis_priv->stats.tx_fifo_errors++;
+                               net_dev->stats.tx_fifo_errors++;
                        if (tx_status & ABORT)
-                               sis_priv->stats.tx_aborted_errors++;
+                               net_dev->stats.tx_aborted_errors++;
                        if (tx_status & NOCARRIER)
-                               sis_priv->stats.tx_carrier_errors++;
+                               net_dev->stats.tx_carrier_errors++;
                        if (tx_status & OWCOLL)
-                               sis_priv->stats.tx_window_errors++;
+                               net_dev->stats.tx_window_errors++;
                } else {
                        /* packet successfully transmitted */
-                       sis_priv->stats.collisions += (tx_status & COLCNT) >> 16;
-                       sis_priv->stats.tx_bytes += tx_status & DSIZE;
-                       sis_priv->stats.tx_packets++;
+                       net_dev->stats.collisions += (tx_status & COLCNT) >> 16;
+                       net_dev->stats.tx_bytes += tx_status & DSIZE;
+                       net_dev->stats.tx_packets++;
                }
                /* Free the original skb. */
                skb = sis_priv->tx_skbuff[entry];
@@ -2137,21 +2134,6 @@ static int mii_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd)
        }
 }
 
-/**
- *     sis900_get_stats - Get sis900 read/write statistics
- *     @net_dev: the net device to get statistics for
- *
- *     get tx/rx statistics for sis900
- */
-
-static struct net_device_stats *
-sis900_get_stats(struct net_device *net_dev)
-{
-       struct sis900_private *sis_priv = net_dev->priv;
-
-       return &sis_priv->stats;
-}
-
 /**
  *     sis900_set_config - Set media type by net_device.set_config
  *     @dev: the net device for media type change
This page took 0.040921 seconds and 5 git commands to generate.