diff options
Diffstat (limited to 'drivers/net/tulip/de2104x.c')
| -rw-r--r-- | drivers/net/tulip/de2104x.c | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/net/tulip/de2104x.c b/drivers/net/tulip/de2104x.c index cb429723b2c..9c0f29ce8ba 100644 --- a/drivers/net/tulip/de2104x.c +++ b/drivers/net/tulip/de2104x.c @@ -42,6 +42,7 @@  #include <linux/compiler.h>  #include <linux/rtnetlink.h>  #include <linux/crc32.h> +#include <linux/slab.h>  #include <asm/io.h>  #include <asm/irq.h> @@ -670,15 +671,15 @@ static void build_setup_frame_hash(u16 *setup_frm, struct net_device *dev)  {  	struct de_private *de = netdev_priv(dev);  	u16 hash_table[32]; -	struct dev_mc_list *mclist; +	struct netdev_hw_addr *ha;  	int i;  	u16 *eaddrs;  	memset(hash_table, 0, sizeof(hash_table));  	set_bit_le(255, hash_table); 			/* Broadcast entry */  	/* This should work on big-endian machines as well. */ -	netdev_for_each_mc_addr(mclist, dev) { -		int index = ether_crc_le(ETH_ALEN, mclist->dmi_addr) & 0x1ff; +	netdev_for_each_mc_addr(ha, dev) { +		int index = ether_crc_le(ETH_ALEN, ha->addr) & 0x1ff;  		set_bit_le(index, hash_table);  	} @@ -699,13 +700,13 @@ static void build_setup_frame_hash(u16 *setup_frm, struct net_device *dev)  static void build_setup_frame_perfect(u16 *setup_frm, struct net_device *dev)  {  	struct de_private *de = netdev_priv(dev); -	struct dev_mc_list *mclist; +	struct netdev_hw_addr *ha;  	u16 *eaddrs;  	/* We have <= 14 addresses so we can use the wonderful  	   16 address perfect filtering of the Tulip. */ -	netdev_for_each_mc_addr(mclist, dev) { -		eaddrs = (u16 *)mclist->dmi_addr; +	netdev_for_each_mc_addr(ha, dev) { +		eaddrs = (u16 *) ha->addr;  		*setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++;  		*setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++;  		*setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++;  |