Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
[safe/jmp/linux-2.6] / drivers / net / arm / at91_ether.c
index 17d85d9..e07b314 100644 (file)
@@ -27,6 +27,7 @@
 #include <linux/ethtool.h>
 #include <linux/platform_device.h>
 #include <linux/clk.h>
+#include <linux/gfp.h>
 
 #include <asm/io.h>
 #include <asm/uaccess.h>
@@ -556,17 +557,14 @@ static int hash_get_index(__u8 *addr)
  */
 static void at91ether_sethashtable(struct net_device *dev)
 {
-       struct dev_mc_list *curr;
+       struct netdev_hw_addr *ha;
        unsigned long mc_filter[2];
-       unsigned int i, bitnr;
+       unsigned int bitnr;
 
        mc_filter[0] = mc_filter[1] = 0;
 
-       curr = dev->mc_list;
-       for (i = 0; i < netdev_mc_count(dev); i++, curr = curr->next) {
-               if (!curr) break;       /* unexpected end of list */
-
-               bitnr = hash_get_index(curr->dmi_addr);
+       netdev_for_each_mc_addr(ha, dev) {
+               bitnr = hash_get_index(ha->addr);
                mc_filter[bitnr >> 5] |= 1 << (bitnr & 31);
        }
 
@@ -826,7 +824,6 @@ static int at91ether_start_xmit(struct sk_buff *skb, struct net_device *dev)
                /* Set length of the packet in the Transmit Control register */
                at91_emac_write(AT91_EMAC_TCR, skb->len);
 
-               dev->trans_start = jiffies;
        } else {
                printk(KERN_ERR "at91_ether.c: at91ether_start_xmit() called, but device is busy!\n");
                return NETDEV_TX_BUSY;  /* if we return anything but zero, dev.c:1055 calls kfree_skb(skb)