dm9601: Fix multicast hash table handling
authorPeter Korsgaard <jacmet@sunsite.dk>
Fri, 28 Mar 2008 21:25:29 +0000 (22:25 +0100)
committerJeff Garzik <jeff@garzik.org>
Sat, 29 Mar 2008 01:52:20 +0000 (21:52 -0400)
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>
drivers/net/usb/dm9601.c

index 0343b00cf1fd153064a860770d182fcf67b5cabc..01660f68943a8b808d3a578e101a08cc55ba3411 100644 (file)
@@ -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);
                }