The b44 driver has a bug where if there are more than B44_MCAST_TABLE_SIZE groups in the dev->mc_list, it will only listen to the first B44_MCAST_TABLE_SIZE that it sees.

This patch makes the driver go into RXCONFIG_ALLMULTI mode if there are more than B44_MCAST_TABLE_SIZE groups being subscribed to.

This patch is against 2.6.18, b44.c version 1.01.


Signed-off-by: Bill Helfinstine <[EMAIL PROTECTED]>

diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index e891ea2..dd024e1 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -1706,7 +1706,8 @@ static void __b44_set_rx_mode(struct net

                __b44_set_mac_addr(bp);

-               if (dev->flags & IFF_ALLMULTI)
+               if ((dev->flags & IFF_ALLMULTI) ||
+                   (dev->mc_count > B44_MCAST_TABLE_SIZE))
                        val |= RXCONFIG_ALLMULTI;
                else
                        i = __b44_load_mcast(bp, dev);
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to