[PATCH] sis190.c: fix multicast MAC filter
authorAurelien Jarno <aurelien@aurel32.net>
Wed, 5 Oct 2005 21:29:58 +0000 (23:29 +0200)
committerJeff Garzik <jgarzik@pobox.com>
Fri, 28 Oct 2005 20:14:11 +0000 (16:14 -0400)
Here is a patch that changes the way the MAC filter is computed for the
multicast addresses. The computation is taken from the SiS GPL driver.

This patch is necessary to get IPv6 working.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/net/sis190.c

index 92f75529eff82cf91bd0780052c29f0f6092c6bd..478791e09bf772f416f1f3dd97873e937ebeb182 100644 (file)
@@ -842,7 +842,7 @@ static void sis190_set_rx_mode(struct net_device *dev)
                for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
                     i++, mclist = mclist->next) {
                        int bit_nr =
-                               ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26;
+                               ether_crc(ETH_ALEN, mclist->dmi_addr) & 0x3f;
                        mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31);
                        rx_mode |= AcceptMulticast;
                }