From: YOSHIFUJI Hideaki <yoshfuji@xxxxxxxxxxxxxx>
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@xxxxxxxxxxxxxx>
Index: drivers/usb/net/pegasus.c
===================================================================
--- 5b713315560487f8c288820b17061fe27016c2cc/drivers/usb/net/pegasus.c
(mode:100644)
+++ uncommitted/drivers/usb/net/pegasus.c (mode:100644)
@@ -1166,7 +1166,7 @@
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: drivers/usb/net/rtl8150.c
===================================================================
--- 5b713315560487f8c288820b17061fe27016c2cc/drivers/usb/net/rtl8150.c
(mode:100644)
+++ uncommitted/drivers/usb/net/rtl8150.c (mode:100644)
@@ -667,7 +667,7 @@
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);
--
YOSHIFUJI Hideaki @ USAGI Project <yoshfuji@xxxxxxxxxxxxxx>
GPG-FP : 9022 65EB 1ECF 3AD1 0BDF 80D8 4807 F894 E062 0EEA
|