• Bill Helfinstine's avatar
    b44: fix IFF_ALLMULTI handling of CAM slots · cda22aa9
    Bill Helfinstine authored
    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: default avatarBill Helfinstine <bhelf@flitterfly.whirpon.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    cda22aa9
b44.c 58.2 KB