Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
[safe/jmp/linux-2.6] / drivers / net / greth.c
index d203233..fd491e4 100644 (file)
@@ -34,6 +34,7 @@
 #include <linux/mii.h>
 #include <linux/of_device.h>
 #include <linux/of_platform.h>
+#include <linux/slab.h>
 #include <asm/cacheflush.h>
 #include <asm/byteorder.h>
 
@@ -66,8 +67,10 @@ module_param(greth_edcl, int, 0);
 MODULE_PARM_DESC(greth_edcl, "GRETH EDCL usage indicator. Set to 1 if EDCL is used.");
 
 static int greth_open(struct net_device *dev);
-static int greth_start_xmit(struct sk_buff *skb, struct net_device *dev);
-static int greth_start_xmit_gbit(struct sk_buff *skb, struct net_device *dev);
+static netdev_tx_t greth_start_xmit(struct sk_buff *skb,
+          struct net_device *dev);
+static netdev_tx_t greth_start_xmit_gbit(struct sk_buff *skb,
+          struct net_device *dev);
 static int greth_rx(struct net_device *dev, int limit);
 static int greth_rx_gbit(struct net_device *dev, int limit);
 static void greth_clean_tx(struct net_device *dev);
@@ -379,7 +382,8 @@ static int greth_close(struct net_device *dev)
        return 0;
 }
 
-static int greth_start_xmit(struct sk_buff *skb, struct net_device *dev)
+static netdev_tx_t
+greth_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
        struct greth_private *greth = netdev_priv(dev);
        struct greth_bd *bdp;
@@ -441,7 +445,8 @@ out:
 }
 
 
-static int greth_start_xmit_gbit(struct sk_buff *skb, struct net_device *dev)
+static netdev_tx_t
+greth_start_xmit_gbit(struct sk_buff *skb, struct net_device *dev)
 {
        struct greth_private *greth = netdev_priv(dev);
        struct greth_bd *bdp;
@@ -556,8 +561,6 @@ map_error:
        if (net_ratelimit())
                dev_warn(greth->dev, "Could not create TX DMA mapping\n");
        dev_kfree_skb(skb);
-       return NETDEV_TX_OK;
-
 out:
        return err;
 }
@@ -892,7 +895,6 @@ static int greth_rx_gbit(struct net_device *dev, int limit)
                                else
                                        skb->ip_summed = CHECKSUM_NONE;
 
-                               skb->dev = dev;
                                skb->protocol = eth_type_trans(skb, dev);
                                dev->stats.rx_packets++;
                                netif_receive_skb(skb);
@@ -987,7 +989,7 @@ static u32 greth_hash_get_index(__u8 *addr)
 
 static void greth_set_hash_filter(struct net_device *dev)
 {
-       struct dev_mc_list *curr;
+       struct netdev_hw_addr *ha;
        struct greth_private *greth = netdev_priv(dev);
        struct greth_regs *regs = (struct greth_regs *) greth->regs;
        u32 mc_filter[2];
@@ -995,8 +997,8 @@ static void greth_set_hash_filter(struct net_device *dev)
 
        mc_filter[0] = mc_filter[1] = 0;
 
-       netdev_for_each_mc_addr(curr, dev) {
-               bitnr = greth_hash_get_index(curr->dmi_addr);
+       netdev_for_each_mc_addr(ha, dev) {
+               bitnr = greth_hash_get_index(ha->addr);
                mc_filter[bitnr >> 5] |= 1 << (bitnr & 31);
        }