diff options
Diffstat (limited to 'drivers/net/ethoc.c')
| -rw-r--r-- | drivers/net/ethoc.c | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c index 209742304e20..6bd03c8b8886 100644 --- a/drivers/net/ethoc.c +++ b/drivers/net/ethoc.c | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | #include <linux/phy.h> | 18 | #include <linux/phy.h> | 
| 19 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> | 
| 20 | #include <linux/sched.h> | 20 | #include <linux/sched.h> | 
| 21 | #include <linux/slab.h> | ||
| 21 | #include <net/ethoc.h> | 22 | #include <net/ethoc.h> | 
| 22 | 23 | ||
| 23 | static int buffer_size = 0x8000; /* 32 KBytes */ | 24 | static int buffer_size = 0x8000; /* 32 KBytes */ | 
| @@ -755,7 +756,7 @@ static void ethoc_set_multicast_list(struct net_device *dev) | |||
| 755 | { | 756 | { | 
| 756 | struct ethoc *priv = netdev_priv(dev); | 757 | struct ethoc *priv = netdev_priv(dev); | 
| 757 | u32 mode = ethoc_read(priv, MODER); | 758 | u32 mode = ethoc_read(priv, MODER); | 
| 758 | struct dev_mc_list *mc; | 759 | struct netdev_hw_addr *ha; | 
| 759 | u32 hash[2] = { 0, 0 }; | 760 | u32 hash[2] = { 0, 0 }; | 
| 760 | 761 | ||
| 761 | /* set loopback mode if requested */ | 762 | /* set loopback mode if requested */ | 
| @@ -783,8 +784,8 @@ static void ethoc_set_multicast_list(struct net_device *dev) | |||
| 783 | hash[0] = 0xffffffff; | 784 | hash[0] = 0xffffffff; | 
| 784 | hash[1] = 0xffffffff; | 785 | hash[1] = 0xffffffff; | 
| 785 | } else { | 786 | } else { | 
| 786 | netdev_for_each_mc_addr(mc, dev) { | 787 | netdev_for_each_mc_addr(ha, dev) { | 
| 787 | u32 crc = ether_crc(ETH_ALEN, mc->dmi_addr); | 788 | u32 crc = ether_crc(ETH_ALEN, ha->addr); | 
| 788 | int bit = (crc >> 26) & 0x3f; | 789 | int bit = (crc >> 26) & 0x3f; | 
| 789 | hash[bit >> 5] |= 1 << (bit & 0x1f); | 790 | hash[bit >> 5] |= 1 << (bit & 0x1f); | 
| 790 | } | 791 | } | 
