[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>
This commit is contained in:
parent
e8d997952b
commit
ae0a97bfda
2 changed files with 2 additions and 2 deletions
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
Reference in a new issue