Browse Source

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>
Peter Korsgaard 17 years ago
parent
commit
47df976c4e
1 changed files with 1 additions and 1 deletions
  1. 1 1
      drivers/net/usb/dm9601.c

+ 1 - 1
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;
 		struct dev_mc_list *mc_list = net->mc_list;
 		int i;
 		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;
 			u32 crc = ether_crc(ETH_ALEN, mc_list->dmi_addr) >> 26;
 			hashes[crc >> 3] |= 1 << (crc & 0x7);
 			hashes[crc >> 3] |= 1 << (crc & 0x7);
 		}
 		}