[NET]: Introduce and use print_mac() and DECLARE_MAC_BUF()
[pandora-kernel.git] / drivers / net / ewrk3.c
index 714ea11..593a120 100644 (file)
@@ -275,7 +275,6 @@ struct ewrk3_private {
        u_long shmem_base;      /* Shared memory start address */
        void __iomem *shmem;
        u_long shmem_length;    /* Shared memory window length */
-       struct net_device_stats stats;  /* Public stats */
        struct ewrk3_stats pktStats; /* Private stats counters */
        u_char irq_mask;        /* Adapter IRQ mask bits */
        u_char mPage;           /* Maximum 2kB Page number */
@@ -302,7 +301,6 @@ static int ewrk3_open(struct net_device *dev);
 static int ewrk3_queue_pkt(struct sk_buff *skb, struct net_device *dev);
 static irqreturn_t ewrk3_interrupt(int irq, void *dev_id);
 static int ewrk3_close(struct net_device *dev);
-static struct net_device_stats *ewrk3_get_stats(struct net_device *dev);
 static void set_multicast_list(struct net_device *dev);
 static int ewrk3_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
 static const struct ethtool_ops ethtool_ops_203;
@@ -356,7 +354,6 @@ struct net_device * __init ewrk3_probe(int unit)
                sprintf(dev->name, "eth%d", unit);
                netdev_boot_setup_check(dev);
        }
-       SET_MODULE_OWNER(dev);
 
        err = ewrk3_probe1(dev, dev->base_addr, dev->irq);
        if (err)
@@ -399,6 +396,7 @@ ewrk3_hw_init(struct net_device *dev, u_long iobase)
        u_long mem_start, shmem_length;
        u_char cr, cmr, icr, nicsr, lemac, hard_strapped = 0;
        u_char eeprom_image[EEPROM_MAX], chksum, eisa_cr = 0;
+       DECLARE_MAC_BUF(mac);
 
        /*
        ** Stop the EWRK3. Enable the DBR ROM. Disable interrupts and remote boot.
@@ -463,10 +461,7 @@ ewrk3_hw_init(struct net_device *dev, u_long iobase)
        if (lemac != LeMAC2)
                DevicePresent(iobase);  /* need after EWRK3_INIT */
        status = get_hw_addr(dev, eeprom_image, lemac);
-       for (i = 0; i < ETH_ALEN - 1; i++) {    /* get the ethernet addr. */
-               printk("%2.2x:", dev->dev_addr[i]);
-       }
-       printk("%2.2x,\n", dev->dev_addr[i]);
+       printk("%s\n", print_mac(mac, dev->dev_addr));
 
        if (status) {
                printk("      which has an EEPROM CRC error.\n");
@@ -612,7 +607,6 @@ ewrk3_hw_init(struct net_device *dev, u_long iobase)
        dev->open = ewrk3_open;
        dev->hard_start_xmit = ewrk3_queue_pkt;
        dev->stop = ewrk3_close;
-       dev->get_stats = ewrk3_get_stats;
        dev->set_multicast_list = set_multicast_list;
        dev->do_ioctl = ewrk3_ioctl;
        if (lp->adapter_name[4] == '3')
@@ -632,7 +626,7 @@ static int ewrk3_open(struct net_device *dev)
 {
        struct ewrk3_private *lp = netdev_priv(dev);
        u_long iobase = dev->base_addr;
-       int i, status = 0;
+       int status = 0;
        u_char icr, csr;
 
        /*
@@ -652,12 +646,10 @@ static int ewrk3_open(struct net_device *dev)
                        ewrk3_init(dev);
 
                        if (ewrk3_debug > 1) {
+                               DECLARE_MAC_BUF(mac);
                                printk("%s: ewrk3 open with irq %d\n", dev->name, dev->irq);
-                               printk("  physical address: ");
-                               for (i = 0; i < 5; i++) {
-                                       printk("%2.2x:", (u_char) dev->dev_addr[i]);
-                               }
-                               printk("%2.2x\n", (u_char) dev->dev_addr[i]);
+                               printk("  physical address: %s\n",
+                                      print_mac(mac, dev->dev_addr));
                                if (lp->shmem_length == 0) {
                                        printk("  no shared memory, I/O only mode\n");
                                } else {
@@ -864,7 +856,7 @@ static int ewrk3_queue_pkt (struct sk_buff *skb, struct net_device *dev)
        ENABLE_IRQs;
        spin_unlock_irq (&lp->hw_lock);
 
-       lp->stats.tx_bytes += skb->len;
+       dev->stats.tx_bytes += skb->len;
        dev->trans_start = jiffies;
        dev_kfree_skb (skb);
 
@@ -981,19 +973,18 @@ static int ewrk3_rx(struct net_device *dev)
                                }
 
                                if (!(rx_status & R_ROK)) {     /* There was an error. */
-                                       lp->stats.rx_errors++;  /* Update the error stats. */
+                                       dev->stats.rx_errors++; /* Update the error stats. */
                                        if (rx_status & R_DBE)
-                                               lp->stats.rx_frame_errors++;
+                                               dev->stats.rx_frame_errors++;
                                        if (rx_status & R_CRC)
-                                               lp->stats.rx_crc_errors++;
+                                               dev->stats.rx_crc_errors++;
                                        if (rx_status & R_PLL)
-                                               lp->stats.rx_fifo_errors++;
+                                               dev->stats.rx_fifo_errors++;
                                } else {
                                        struct sk_buff *skb;
 
                                        if ((skb = dev_alloc_skb(pkt_len + 2)) != NULL) {
                                                unsigned char *p;
-                                               skb->dev = dev;
                                                skb_reserve(skb, 2);    /* Align to 16 bytes */
                                                p = skb_put(skb, pkt_len);
 
@@ -1039,11 +1030,11 @@ static int ewrk3_rx(struct net_device *dev)
                                                   ** Update stats
                                                 */
                                                dev->last_rx = jiffies;
-                                               lp->stats.rx_packets++;
-                                               lp->stats.rx_bytes += pkt_len;
+                                               dev->stats.rx_packets++;
+                                               dev->stats.rx_bytes += pkt_len;
                                        } else {
                                                printk("%s: Insufficient memory; nuking packet.\n", dev->name);
-                                               lp->stats.rx_dropped++;         /* Really, deferred. */
+                                               dev->stats.rx_dropped++;                /* Really, deferred. */
                                                break;
                                        }
                                }
@@ -1073,11 +1064,11 @@ static int ewrk3_tx(struct net_device *dev)
        while ((tx_status = inb(EWRK3_TDQ)) > 0) {      /* Whilst there's old buffers */
                if (tx_status & T_VSTS) {       /* The status is valid */
                        if (tx_status & T_TXE) {
-                               lp->stats.tx_errors++;
+                               dev->stats.tx_errors++;
                                if (tx_status & T_NCL)
-                                       lp->stats.tx_carrier_errors++;
+                                       dev->stats.tx_carrier_errors++;
                                if (tx_status & T_LCL)
-                                       lp->stats.tx_window_errors++;
+                                       dev->stats.tx_window_errors++;
                                if (tx_status & T_CTU) {
                                        if ((tx_status & T_COLL) ^ T_XUR) {
                                                lp->pktStats.tx_underruns++;
@@ -1086,13 +1077,13 @@ static int ewrk3_tx(struct net_device *dev)
                                        }
                                } else if (tx_status & T_COLL) {
                                        if ((tx_status & T_COLL) ^ T_XCOLL) {
-                                               lp->stats.collisions++;
+                                               dev->stats.collisions++;
                                        } else {
                                                lp->pktStats.excessive_collisions++;
                                        }
                                }
                        } else {
-                               lp->stats.tx_packets++;
+                               dev->stats.tx_packets++;
                        }
                }
        }
@@ -1135,14 +1126,6 @@ static int ewrk3_close(struct net_device *dev)
        return 0;
 }
 
-static struct net_device_stats *ewrk3_get_stats(struct net_device *dev)
-{
-       struct ewrk3_private *lp = netdev_priv(dev);
-
-       /* Null body since there is no framing error counter */
-       return &lp->stats;
-}
-
 /*
    ** Set or clear the multicast filter for this adapter.
  */