]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - drivers/net/dgrs.c
[NET] drivers/net: statistics cleanup #1 -- save memory and shrink code
[mirror_ubuntu-jammy-kernel.git] / drivers / net / dgrs.c
index e9361cb5f4cd44297ab0ed0fbe99f050333d9360..a9ef79da3dc728cf1ed46b1aea790f8c2995e3b8 100644 (file)
@@ -110,7 +110,6 @@ static char version[] __initdata =
  *     DGRS include files
  */
 typedef unsigned char uchar;
-typedef unsigned int bool;
 #define vol volatile
 
 #include "dgrs.h"
@@ -194,11 +193,6 @@ static int dgrs_nicmode;
  */
 typedef struct
 {
-       /*
-        *      Stuff for generic ethercard I/F
-        */
-       struct net_device_stats stats;
-
        /*
         *      DGRS specific data
         */
@@ -500,11 +494,10 @@ dgrs_rcv_frame(
        if ((skb = dev_alloc_skb(len+5)) == NULL)
        {
                printk("%s: dev_alloc_skb failed for rcv buffer\n", devN->name);
-               ++privN->stats.rx_dropped;
+               ++dev0->stats.rx_dropped;
                /* discarding the frame */
                goto out;
        }
-       skb->dev = devN;
        skb_reserve(skb, 2);    /* Align IP header */
 
 again:
@@ -669,8 +662,8 @@ again:
        skb->protocol = eth_type_trans(skb, devN);
        netif_rx(skb);
        devN->last_rx = jiffies;
-       ++privN->stats.rx_packets;
-       privN->stats.rx_bytes += len;
+       ++devN->stats.rx_packets;
+       devN->stats.rx_bytes += len;
 
 out:
        cbp->xmit.status = I596_CB_STATUS_C | I596_CB_STATUS_OK;
@@ -743,7 +736,7 @@ static int dgrs_start_xmit(struct sk_buff *skb, struct net_device *devN)
                }
 
                amt = min_t(unsigned int, len, rbdp->size - count);
-               memcpy( (char *) S2H(rbdp->buf) + count, skb->data + i, amt);
+               skb_copy_from_linear_data_offset(skb, i, S2H(rbdp->buf) + count, amt);
                i += amt;
                count += amt;
                len -= amt;
@@ -778,7 +771,7 @@ frame_done:
        priv0->rfdp->status = I596_RFD_C | I596_RFD_OK;
        priv0->rfdp = (I596_RFD *) S2H(priv0->rfdp->next);
 
-       ++privN->stats.tx_packets;
+       ++devN->stats.tx_packets;
 
        dev_kfree_skb (skb);
        return (0);
@@ -807,16 +800,6 @@ static int dgrs_close( struct net_device *dev )
        return (0);
 }
 
-/*
- *     Get statistics
- */
-static struct net_device_stats *dgrs_get_stats( struct net_device *dev )
-{
-       DGRS_PRIV       *priv = (DGRS_PRIV *) dev->priv;
-
-       return (&priv->stats);
-}
-
 /*
  *     Set multicast list and/or promiscuous mode
  */
@@ -896,10 +879,10 @@ static int dgrs_ioctl(struct net_device *devN, struct ifreq *ifr, int cmd)
  *     dev, priv will always refer to the 0th device in Multi-NIC mode.
  */
 
-static irqreturn_t dgrs_intr(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dgrs_intr(int irq, void *dev_id)
 {
-       struct net_device       *dev0 = (struct net_device *) dev_id;
-       DGRS_PRIV       *priv0 = (DGRS_PRIV *) dev0->priv;
+       struct net_device       *dev0 = dev_id;
+       DGRS_PRIV       *priv0 = dev0->priv;
        I596_CB         *cbp;
        int             cmd;
        int             i;
@@ -1215,7 +1198,6 @@ dgrs_probe1(struct net_device *dev)
         */
        dev->open = &dgrs_open;
        dev->stop = &dgrs_close;
-       dev->get_stats = &dgrs_get_stats;
        dev->hard_start_xmit = &dgrs_start_xmit;
        dev->set_multicast_list = &dgrs_set_multicast_list;
        dev->do_ioctl = &dgrs_ioctl;
@@ -1274,7 +1256,6 @@ dgrs_found_device(
        priv->chan = 1;
        priv->devtbl[0] = dev;
 
-       SET_MODULE_OWNER(dev);
        SET_NETDEV_DEV(dev, pdev);
 
        ret = dgrs_probe1(dev);
@@ -1322,7 +1303,6 @@ dgrs_found_device(
                if (ret)
                        goto fail;
 
-               SET_MODULE_OWNER(devN);
                SET_NETDEV_DEV(dev, pdev);
 
                ret = register_netdev(devN);