All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 2.6.21-rc5] b44: fix IFF_ALLMULTI handling of CAM slots
@ 2007-04-01 17:10 Bill Helfinstine
  2007-04-02 15:11 ` Gary Zambrano
  2007-04-04  2:31 ` Jeff Garzik
  0 siblings, 2 replies; 3+ messages in thread
From: Bill Helfinstine @ 2007-04-01 17:10 UTC (permalink / raw)
  To: zambrano, jgarzik; +Cc: netdev, bhelf


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 <bhelf@flitterfly.whirpon.com>

---

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);
 





^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 2.6.21-rc5] b44: fix IFF_ALLMULTI handling of CAM slots
  2007-04-01 17:10 [PATCH 2.6.21-rc5] b44: fix IFF_ALLMULTI handling of CAM slots Bill Helfinstine
@ 2007-04-02 15:11 ` Gary Zambrano
  2007-04-04  2:31 ` Jeff Garzik
  1 sibling, 0 replies; 3+ messages in thread
From: Gary Zambrano @ 2007-04-02 15:11 UTC (permalink / raw)
  To: Bill Helfinstine; +Cc: jgarzik, netdev

On Sun, 2007-04-01 at 10:10 -0700, Bill Helfinstine wrote:
> 
> 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 <bhelf@flitterfly.whirpon.com>

Thanks.

Acked-by: Gary Zambrano <zambrano@broadcom.com>



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 2.6.21-rc5] b44: fix IFF_ALLMULTI handling of CAM slots
  2007-04-01 17:10 [PATCH 2.6.21-rc5] b44: fix IFF_ALLMULTI handling of CAM slots Bill Helfinstine
  2007-04-02 15:11 ` Gary Zambrano
@ 2007-04-04  2:31 ` Jeff Garzik
  1 sibling, 0 replies; 3+ messages in thread
From: Jeff Garzik @ 2007-04-04  2:31 UTC (permalink / raw)
  To: Bill Helfinstine; +Cc: zambrano, netdev

Bill Helfinstine wrote:
> 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 <bhelf@flitterfly.whirpon.com>

applied



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-04-04  2:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-04-01 17:10 [PATCH 2.6.21-rc5] b44: fix IFF_ALLMULTI handling of CAM slots Bill Helfinstine
2007-04-02 15:11 ` Gary Zambrano
2007-04-04  2:31 ` Jeff Garzik

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.