Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[cascardo/linux.git] / drivers / net / tokenring / lanstreamer.c
index 5d849c0..59d1673 100644 (file)
 #include <linux/pci.h>
 #include <linux/dma-mapping.h>
 #include <linux/spinlock.h>
-#include <linux/version.h>
 #include <linux/bitops.h>
 #include <linux/jiffies.h>
 
+#include <net/net_namespace.h>
 #include <net/checksum.h>
 
 #include <asm/io.h>
@@ -244,13 +244,12 @@ static int __devinit streamer_init_one(struct pci_dev *pdev,
                return -ENOMEM;
        }
 
-       SET_MODULE_OWNER(dev);
-       streamer_priv = dev->priv;
+       streamer_priv = netdev_priv(dev);
 
 #if STREAMER_NETWORK_MONITOR
 #ifdef CONFIG_PROC_FS
        if (!dev_streamer)
-               create_proc_read_entry("net/streamer_tr", 0, 0,
+               create_proc_read_entry("streamer_tr", 0, init_net.proc_net,
                                        streamer_proc_info, NULL); 
        streamer_priv->next = dev_streamer;
        dev_streamer = streamer_priv;
@@ -404,7 +403,7 @@ static void __devexit streamer_remove_one(struct pci_dev *pdev)
                return;
        }
 
-       streamer_priv=dev->priv;
+       streamer_priv=netdev_priv(dev);
        if (streamer_priv == NULL) {
                printk(KERN_ERR "lanstreamer::streamer_remove_one, ERROR dev->priv is NULL\n");
                return;
@@ -423,7 +422,7 @@ static void __devexit streamer_remove_one(struct pci_dev *pdev)
                        }
                }
                if (!dev_streamer)
-                       remove_proc_entry("net/streamer_tr", NULL);
+                       remove_proc_entry("streamer_tr", init_net.proc_net);
        }
 #endif
 #endif
@@ -447,8 +446,11 @@ static int streamer_reset(struct net_device *dev)
        unsigned int uaa_addr;
        struct sk_buff *skb = NULL;
        __u16 misr;
+#if STREAMER_DEBUG
+       DECLARE_MAC_BUF(mac);
+#endif
 
-       streamer_priv = (struct streamer_private *) dev->priv;
+       streamer_priv = netdev_priv(dev);
        streamer_mmio = streamer_priv->streamer_mmio;
 
        writew(readw(streamer_mmio + BCTL) | BCTL_SOFTRESET, streamer_mmio + BCTL);
@@ -575,11 +577,8 @@ static int streamer_reset(struct net_device *dev)
                        dev->dev_addr[i+1]= addr & 0xff;
                }
 #if STREAMER_DEBUG
-               printk("Adapter address: ");
-               for (i = 0; i < 6; i++) {
-                       printk("%02x:", dev->dev_addr[i]);
-               }
-               printk("\n");
+               printk("Adapter address: %s\n",
+                      print_mac(mac, dev->dev_addr));
 #endif
        }
        return 0;
@@ -587,7 +586,7 @@ static int streamer_reset(struct net_device *dev)
 
 static int streamer_open(struct net_device *dev)
 {
-       struct streamer_private *streamer_priv = (struct streamer_private *) dev->priv;
+       struct streamer_private *streamer_priv = netdev_priv(dev);
        __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
        unsigned long flags;
        char open_error[255];
@@ -904,7 +903,7 @@ static int streamer_open(struct net_device *dev)
 static void streamer_rx(struct net_device *dev)
 {
        struct streamer_private *streamer_priv =
-           (struct streamer_private *) dev->priv;
+           netdev_priv(dev);
        __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
        struct streamer_rx_desc *rx_desc;
        int rx_ring_last_received, length, frame_length, buffer_cnt = 0;
@@ -1029,7 +1028,7 @@ static irqreturn_t streamer_interrupt(int irq, void *dev_id)
 {
        struct net_device *dev = (struct net_device *) dev_id;
        struct streamer_private *streamer_priv =
-           (struct streamer_private *) dev->priv;
+           netdev_priv(dev);
        __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
        __u16 sisr;
        __u16 misr;
@@ -1152,7 +1151,7 @@ static irqreturn_t streamer_interrupt(int irq, void *dev_id)
 static int streamer_xmit(struct sk_buff *skb, struct net_device *dev)
 {
        struct streamer_private *streamer_priv =
-           (struct streamer_private *) dev->priv;
+           netdev_priv(dev);
        __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
        unsigned long flags ;
 
@@ -1203,7 +1202,7 @@ static int streamer_xmit(struct sk_buff *skb, struct net_device *dev)
 static int streamer_close(struct net_device *dev)
 {
        struct streamer_private *streamer_priv =
-           (struct streamer_private *) dev->priv;
+           netdev_priv(dev);
        __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
        unsigned long flags;
        int i;
@@ -1269,7 +1268,7 @@ static int streamer_close(struct net_device *dev)
 static void streamer_set_rx_mode(struct net_device *dev)
 {
        struct streamer_private *streamer_priv =
-           (struct streamer_private *) dev->priv;
+           netdev_priv(dev);
        __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
        __u8 options = 0;
        struct dev_mc_list *dmi;
@@ -1328,7 +1327,7 @@ static void streamer_set_rx_mode(struct net_device *dev)
 
 static void streamer_srb_bh(struct net_device *dev)
 {
-       struct streamer_private *streamer_priv = (struct streamer_private *) dev->priv;
+       struct streamer_private *streamer_priv = netdev_priv(dev);
        __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
        __u16 srb_word;
 
@@ -1493,14 +1492,14 @@ static void streamer_srb_bh(struct net_device *dev)
 static struct net_device_stats *streamer_get_stats(struct net_device *dev)
 {
        struct streamer_private *streamer_priv;
-       streamer_priv = (struct streamer_private *) dev->priv;
+       streamer_priv = netdev_priv(dev);
        return (struct net_device_stats *) &streamer_priv->streamer_stats;
 }
 
 static int streamer_set_mac_address(struct net_device *dev, void *addr)
 {
        struct sockaddr *saddr = addr;
-       struct streamer_private *streamer_priv = (struct streamer_private *) dev->priv;
+       struct streamer_private *streamer_priv = netdev_priv(dev);
 
        if (netif_running(dev)) 
        {
@@ -1525,7 +1524,7 @@ static int streamer_set_mac_address(struct net_device *dev, void *addr)
 static void streamer_arb_cmd(struct net_device *dev)
 {
        struct streamer_private *streamer_priv =
-           (struct streamer_private *) dev->priv;
+           netdev_priv(dev);
        __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
        __u8 header_len;
        __u16 frame_len, buffer_len;
@@ -1539,6 +1538,7 @@ static void streamer_arb_cmd(struct net_device *dev)
 
 #if STREAMER_NETWORK_MONITOR
        struct trh_hdr *mac_hdr;
+       DECLARE_MAC_BUF(mac);
 #endif
 
        writew(streamer_priv->arb, streamer_mmio + LAPA);
@@ -1611,15 +1611,11 @@ static void streamer_arb_cmd(struct net_device *dev)
                       dev->name);
                mac_hdr = tr_hdr(mac_frame);
                printk(KERN_WARNING
-                      "%s: MAC Frame Dest. Addr: %02x:%02x:%02x:%02x:%02x:%02x \n",
-                      dev->name, mac_hdr->daddr[0], mac_hdr->daddr[1],
-                      mac_hdr->daddr[2], mac_hdr->daddr[3],
-                      mac_hdr->daddr[4], mac_hdr->daddr[5]);
+                      "%s: MAC Frame Dest. Addr: %s\n",
+                      dev->name, print_mac(mac, mac_hdr->daddr));
                printk(KERN_WARNING
-                      "%s: MAC Frame Srce. Addr: %02x:%02x:%02x:%02x:%02x:%02x \n",
-                      dev->name, mac_hdr->saddr[0], mac_hdr->saddr[1],
-                      mac_hdr->saddr[2], mac_hdr->saddr[3],
-                      mac_hdr->saddr[4], mac_hdr->saddr[5]);
+                      "%s: MAC Frame Srce. Addr: %s\n",
+                      dev->name, DEV->ADDR6(mac_hdr->saddr));
 #endif
                netif_rx(mac_frame);
 
@@ -1740,7 +1736,7 @@ drop_frame:
 static void streamer_asb_bh(struct net_device *dev)
 {
        struct streamer_private *streamer_priv =
-           (struct streamer_private *) dev->priv;
+           netdev_priv(dev);
        __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
 
        if (streamer_priv->asb_queued == 1) 
@@ -1784,7 +1780,7 @@ static void streamer_asb_bh(struct net_device *dev)
 static int streamer_change_mtu(struct net_device *dev, int mtu)
 {
        struct streamer_private *streamer_priv =
-           (struct streamer_private *) dev->priv;
+           netdev_priv(dev);
        __u16 max_mtu;
 
        if (streamer_priv->streamer_ring_speed == 4)
@@ -1848,12 +1844,14 @@ static int streamer_proc_info(char *buffer, char **start, off_t offset,
 static int sprintf_info(char *buffer, struct net_device *dev)
 {
        struct streamer_private *streamer_priv =
-           (struct streamer_private *) dev->priv;
+           netdev_priv(dev);
        __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
        struct streamer_adapter_addr_table sat;
        struct streamer_parameters_table spt;
        int size = 0;
        int i;
+       DECLARE_MAC_BUF(mac);
+       DECLARE_MAC_BUF(mac2);
 
        writew(streamer_priv->streamer_addr_table_addr, streamer_mmio + LAPA);
        for (i = 0; i < 14; i += 2) {
@@ -1875,37 +1873,30 @@ static int sprintf_info(char *buffer, struct net_device *dev)
        size = sprintf(buffer, "\n%6s: Adapter Address   : Node Address      : Functional Addr\n", dev->name);
 
        size += sprintf(buffer + size,
-                   "%6s: %02x:%02x:%02x:%02x:%02x:%02x : %02x:%02x:%02x:%02x:%02x:%02x : %02x:%02x:%02x:%02x\n",
-                   dev->name, dev->dev_addr[0], dev->dev_addr[1],
-                   dev->dev_addr[2], dev->dev_addr[3], dev->dev_addr[4],
-                   dev->dev_addr[5], sat.node_addr[0], sat.node_addr[1],
-                   sat.node_addr[2], sat.node_addr[3], sat.node_addr[4],
-                   sat.node_addr[5], sat.func_addr[0], sat.func_addr[1],
-                   sat.func_addr[2], sat.func_addr[3]);
+                       "%6s: %s : %s : %02x:%02x:%02x:%02x\n",
+                       dev->name, print_mac(mac, dev->dev_addr),
+                       print_mac(mac2, sat.node_addr),
+                       sat.func_addr[0], sat.func_addr[1],
+                       sat.func_addr[2], sat.func_addr[3]);
 
        size += sprintf(buffer + size, "\n%6s: Token Ring Parameters Table:\n", dev->name);
 
        size += sprintf(buffer + size, "%6s: Physical Addr : Up Node Address   : Poll Address      : AccPri : Auth Src : Att Code :\n", dev->name);
 
        size += sprintf(buffer + size,
-                   "%6s: %02x:%02x:%02x:%02x   : %02x:%02x:%02x:%02x:%02x:%02x : %02x:%02x:%02x:%02x:%02x:%02x : %04x   : %04x     :  %04x    :\n",
+                   "%6s: %02x:%02x:%02x:%02x   : %s : %s : %04x   : %04x     :  %04x    :\n",
                    dev->name, spt.phys_addr[0], spt.phys_addr[1],
                    spt.phys_addr[2], spt.phys_addr[3],
-                   spt.up_node_addr[0], spt.up_node_addr[1],
-                   spt.up_node_addr[2], spt.up_node_addr[3],
-                   spt.up_node_addr[4], spt.up_node_addr[4],
-                   spt.poll_addr[0], spt.poll_addr[1], spt.poll_addr[2],
-                   spt.poll_addr[3], spt.poll_addr[4], spt.poll_addr[5],
+                   print_mac(mac, spt.up_node_addr),
+                   print_mac(mac2, spt.poll_addr),
                    ntohs(spt.acc_priority), ntohs(spt.auth_source_class),
                    ntohs(spt.att_code));
 
        size += sprintf(buffer + size, "%6s: Source Address    : Bcn T : Maj. V : Lan St : Lcl Rg : Mon Err : Frame Correl : \n", dev->name);
 
        size += sprintf(buffer + size,
-                   "%6s: %02x:%02x:%02x:%02x:%02x:%02x : %04x  : %04x   : %04x   : %04x   : %04x    :     %04x     : \n",
-                   dev->name, spt.source_addr[0], spt.source_addr[1],
-                   spt.source_addr[2], spt.source_addr[3],
-                   spt.source_addr[4], spt.source_addr[5],
+                   "%6s: %s : %04x  : %04x   : %04x   : %04x   : %04x    :     %04x     : \n",
+                   dev->name, print_mac(mac, spt.source_addr),
                    ntohs(spt.beacon_type), ntohs(spt.major_vector),
                    ntohs(spt.lan_status), ntohs(spt.local_ring),
                    ntohs(spt.mon_error), ntohs(spt.frame_correl));
@@ -1914,14 +1905,12 @@ static int sprintf_info(char *buffer, struct net_device *dev)
                    dev->name);
 
        size += sprintf(buffer + size,
-                   "%6s:                :  %02x  :  %02x  : %02x:%02x:%02x:%02x:%02x:%02x : %02x:%02x:%02x:%02x    : \n",
+                   "%6s:                :  %02x  :  %02x  : %s : %02x:%02x:%02x:%02x    : \n",
                    dev->name, ntohs(spt.beacon_transmit),
-                   ntohs(spt.beacon_receive), spt.beacon_naun[0],
-                   spt.beacon_naun[1], spt.beacon_naun[2],
-                   spt.beacon_naun[3], spt.beacon_naun[4],
-                   spt.beacon_naun[5], spt.beacon_phys[0],
-                   spt.beacon_phys[1], spt.beacon_phys[2],
-                   spt.beacon_phys[3]);
+                   ntohs(spt.beacon_receive),
+                   print_mac(mac, spt.beacon_naun),
+                   spt.beacon_phys[0], spt.beacon_phys[1],
+                   spt.beacon_phys[2], spt.beacon_phys[3]);
        return size;
 }
 #endif