[PATCH] NETDEV: fix receiving multicast frames.
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Wed, 25 May 2005 07:07:04 +0000 (16:07 +0900)
committerJeff Garzik <jgarzik@pobox.com>
Mon, 27 Jun 2005 04:44:08 +0000 (00:44 -0400)
Some USB ethernet drivers did not accept multicast frames appropriately.
IPv6 did not work with those drivers without this patch.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
drivers/usb/net/pegasus.c
drivers/usb/net/rtl8150.c

index d976790..5f4496d 100644 (file)
@@ -1166,7 +1166,7 @@ static void pegasus_set_multicast(struct net_device *net)
                pegasus->eth_regs[EthCtrl2] |= RX_PROMISCUOUS;
                if (netif_msg_link(pegasus))
                        pr_info("%s: Promiscuous mode enabled.\n", net->name);
-       } else if ((net->mc_count > multicast_filter_limit) ||
+       } else if (net->mc_count ||
                   (net->flags & IFF_ALLMULTI)) {
                pegasus->eth_regs[EthCtrl0] |= RX_MULTICAST;
                pegasus->eth_regs[EthCtrl2] &= ~RX_PROMISCUOUS;
index 8fb2233..626b016 100644 (file)
@@ -667,7 +667,7 @@ static void rtl8150_set_multicast(struct net_device *netdev)
        if (netdev->flags & IFF_PROMISC) {
                dev->rx_creg |= cpu_to_le16(0x0001);
                info("%s: promiscuous mode", netdev->name);
-       } else if ((netdev->mc_count > multicast_filter_limit) ||
+       } else if (netdev->mc_count ||
                   (netdev->flags & IFF_ALLMULTI)) {
                dev->rx_creg &= cpu_to_le16(0xfffe);
                dev->rx_creg |= cpu_to_le16(0x0002);