]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/dgrs.c
pasemi_mac: pass in count of buffers to replenish rx ring with
[linux-2.6-omap-h63xx.git] / drivers / net / dgrs.c
index d0842527b3694782ebdcbde85e21e5ad95f55193..054f2ba5f6985f4bc510299d9e8d6cba194da07d 100644 (file)
@@ -193,11 +193,6 @@ static int dgrs_nicmode;
  */
 typedef struct
 {
-       /*
-        *      Stuff for generic ethercard I/F
-        */
-       struct net_device_stats stats;
-
        /*
         *      DGRS specific data
         */
@@ -499,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:
@@ -668,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;
@@ -742,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;
@@ -777,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);
@@ -806,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
  */
@@ -895,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;
@@ -1155,6 +1139,7 @@ dgrs_probe1(struct net_device *dev)
        DGRS_PRIV       *priv = (DGRS_PRIV *) dev->priv;
        unsigned long   i;
        int             rc;
+       DECLARE_MAC_BUF(mac);
 
        printk("%s: Digi RightSwitch io=%lx mem=%lx irq=%d plx=%lx dma=%lx\n",
                dev->name, dev->base_addr, dev->mem_start, dev->irq,
@@ -1170,11 +1155,9 @@ dgrs_probe1(struct net_device *dev)
        /*
         * Get ether address of board
         */
-       printk("%s: Ethernet address", dev->name);
        memcpy(dev->dev_addr, priv->port->ethaddr, 6);
-       for (i = 0; i < 6; ++i)
-               printk("%c%2.2x", i ? ':' : ' ', dev->dev_addr[i]);
-       printk("\n");
+       printk("%s: Ethernet address %s\n",
+              dev->name, print_mac(mac, dev->dev_addr));
 
        if (dev->dev_addr[0] & 1)
        {
@@ -1214,7 +1197,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;
@@ -1231,15 +1213,12 @@ static int __init
 dgrs_initclone(struct net_device *dev)
 {
        DGRS_PRIV       *priv = (DGRS_PRIV *) dev->priv;
-       int             i;
+       DECLARE_MAC_BUF(mac);
 
-       printk("%s: Digi RightSwitch port %d ",
-               dev->name, priv->chan);
-       for (i = 0; i < 6; ++i)
-               printk("%c%2.2x", i ? ':' : ' ', dev->dev_addr[i]);
-       printk("\n");
+       printk("%s: Digi RightSwitch port %d %s\n",
+               dev->name, priv->chan, print_mac(mac, dev->dev_addr));
 
-       return (0);
+       return 0;
 }
 
 static struct net_device * __init
@@ -1273,7 +1252,6 @@ dgrs_found_device(
        priv->chan = 1;
        priv->devtbl[0] = dev;
 
-       SET_MODULE_OWNER(dev);
        SET_NETDEV_DEV(dev, pdev);
 
        ret = dgrs_probe1(dev);
@@ -1321,7 +1299,6 @@ dgrs_found_device(
                if (ret)
                        goto fail;
 
-               SET_MODULE_OWNER(devN);
                SET_NETDEV_DEV(dev, pdev);
 
                ret = register_netdev(devN);