summaryrefslogtreecommitdiff
path: root/drivers/net/usb/dm9601.c
diff options
context:
space:
mode:
authorPeter Korsgaard <jacmet@sunsite.dk>2008-03-29 00:25:29 +0300
committerJeff Garzik <jeff@garzik.org>2008-03-29 04:52:20 +0300
commit47df976c4ef1456b39b59caf4b8fc64f77e0e5b9 (patch)
treec520cc3e6c5af90c55debc94c88f09153989cdac /drivers/net/usb/dm9601.c
parent209261c019f56d77f6a0cc38048e9a6f25867589 (diff)
downloadlinux-47df976c4ef1456b39b59caf4b8fc64f77e0e5b9.tar.xz
dm9601: Fix multicast hash table handling
The loop forgot to walk the net->mc_list list, so only the first multicast address was programmed into the hash table. Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/usb/dm9601.c')
-rw-r--r--drivers/net/usb/dm9601.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/usb/dm9601.c b/drivers/net/usb/dm9601.c
index 0343b00cf1fd..01660f68943a 100644
--- a/drivers/net/usb/dm9601.c
+++ b/drivers/net/usb/dm9601.c
@@ -354,7 +354,7 @@ static void dm9601_set_multicast(struct net_device *net)
struct dev_mc_list *mc_list = net->mc_list;
int i;
- for (i = 0; i < net->mc_count; i++) {
+ for (i = 0; i < net->mc_count; i++, mc_list = mc_list->next) {
u32 crc = ether_crc(ETH_ALEN, mc_list->dmi_addr) >> 26;
hashes[crc >> 3] |= 1 << (crc & 0x7);
}