Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cda22aa94d3fe3942476b3652b8b92c653b96ee3
Commit:     cda22aa94d3fe3942476b3652b8b92c653b96ee3
Parent:     7f672cf5b2382310d530469f1f78f69bf48adedc
Author:     Bill Helfinstine <[EMAIL PROTECTED]>
AuthorDate: Sun Apr 1 13:10:28 2007 -0400
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Tue Apr 3 22:31:09 2007 -0400

    b44: fix IFF_ALLMULTI handling of CAM slots
    
    If you set the IFF_ALLMULTI flag on a b44 device, or if you join more than
    B44_MCAST_TABLE_SIZE multicast groups, the device will stop receiving 
unicast
    messages.  This is because the __b44_set_mac_addr call sets the zeroth CAM
    entry to the MAC address of the device, and then the loop at line 1722
    proceeds to overwrite it unless the value of i is set by the 
__b44_load_mcast
    call.  However, when IFF_ALLMULTI is set, that call is bypassed, leaving i 
set
    to zero.
    
    Fixed by starting the loop at 1 to make it skip the CAM entry for the MAC
    address.
    
    Signed-off-by: Bill Helfinstine <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/b44.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index aaada57..d742bfe 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -1709,7 +1709,7 @@ static void __b44_set_rx_mode(struct net_device *dev)
                bw32(bp, B44_RXCONFIG, val);
        } else {
                unsigned char zero[6] = {0, 0, 0, 0, 0, 0};
-               int i = 0;
+               int i = 1;
 
                __b44_set_mac_addr(bp);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to