Browse Source

[PATCH] NETDEV: fix receiving multicast frames.

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>
YOSHIFUJI Hideaki 20 years ago
parent
commit
ae0a97bfda
2 changed files with 2 additions and 2 deletions
  1. 1 1
      drivers/usb/net/pegasus.c
  2. 1 1
      drivers/usb/net/rtl8150.c

+ 1 - 1
drivers/usb/net/pegasus.c

@@ -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;

+ 1 - 1
drivers/usb/net/rtl8150.c

@@ -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);