of: Always use 'struct device.of_node' to get device node pointer.
[safe/jmp/linux-2.6] / drivers / net / myri_sbus.c
index 5f0758b..e21439f 100644 (file)
@@ -14,7 +14,6 @@ static char version[] =
 #include <linux/interrupt.h>
 #include <linux/ioport.h>
 #include <linux/in.h>
-#include <linux/slab.h>
 #include <linux/string.h>
 #include <linux/delay.h>
 #include <linux/init.h>
@@ -26,6 +25,7 @@ static char version[] =
 #include <linux/of.h>
 #include <linux/of_device.h>
 #include <linux/firmware.h>
+#include <linux/gfp.h>
 
 #include <net/dst.h>
 #include <net/arp.h>
@@ -692,7 +692,7 @@ static int myri_start_xmit(struct sk_buff *skb, struct net_device *dev)
        DTX(("tbusy=0, returning 0\n"));
        netif_start_queue(dev);
        spin_unlock_irqrestore(&mp->irq_lock, flags);
-       return 0;
+       return NETDEV_TX_OK;
 }
 
 /* Create the MyriNet MAC header for an arbitrary protocol layer
@@ -716,10 +716,10 @@ static int myri_header(struct sk_buff *skb, struct net_device *dev,
        pad[0] = MYRI_PAD_LEN;
        pad[1] = 0xab;
 
-       /* Set the protocol type. For a packet of type ETH_P_802_3 we put the length
-        * in here instead. It is up to the 802.2 layer to carry protocol information.
+       /* Set the protocol type. For a packet of type ETH_P_802_3/2 we put the
+        * length in here instead.
         */
-       if (type != ETH_P_802_3)
+       if (type != ETH_P_802_3 && type != ETH_P_802_2)
                eth->h_proto = htons(type);
        else
                eth->h_proto = htons(len);
@@ -928,7 +928,7 @@ static const struct net_device_ops myri_ops = {
 
 static int __devinit myri_sbus_probe(struct of_device *op, const struct of_device_id *match)
 {
-       struct device_node *dp = op->node;
+       struct device_node *dp = op->dev.of_node;
        static unsigned version_printed;
        struct net_device *dev;
        struct myri_eth *mp;
@@ -1084,7 +1084,7 @@ static int __devinit myri_sbus_probe(struct of_device *op, const struct of_devic
 
        /* Register interrupt handler now. */
        DET(("Requesting MYRIcom IRQ line.\n"));
-       if (request_irq(dev->irq, &myri_interrupt,
+       if (request_irq(dev->irq, myri_interrupt,
                        IRQF_SHARED, "MyriCOM Ethernet", (void *) dev)) {
                printk("MyriCOM: Cannot register interrupt handler.\n");
                goto err;