Patchwork atl1e Ethernet driver not seeing packets sent to 33:33:00:00:00:01 multicast

login
register
mail settings
Submitter J. K. Cliburn
Date Nov. 11, 2008, 4:08 p.m.
Message ID <20081111100816.58a7cf09@osprey.hogchain.net>
Download mbox | patch
Permalink /patch/8157/
State Superseded
Delegated to: Jeff Garzik
Headers show

Comments

J. K. Cliburn - Nov. 11, 2008, 4:08 p.m.
On Tue, 11 Nov 2008 16:59:08 +0100
David Madore <david.madore@ens.fr> wrote:

> On Tue, Nov 11, 2008 at 08:06:11AM -0600, J. K. Cliburn wrote:
> > Just to verify your system is fitted with the L1e and not the L1
> > chip, can you please provide the output of lspci -vvnn?
> 
> Here goes (adapter in question is at the very end):

Thanks.

Can you please try this patch?
David Madore - Nov. 11, 2008, 10 p.m.
On Tue, Nov 11, 2008 at 10:08:16AM -0600, J. K. Cliburn wrote:
> Can you please try this patch?
> 
> diff --git a/drivers/net/atl1e/atl1e_hw.c b/drivers/net/atl1e/atl1e_hw.c
> index 949e753..c0d5f7c 100644
> --- a/drivers/net/atl1e/atl1e_hw.c
> +++ b/drivers/net/atl1e/atl1e_hw.c
> @@ -163,9 +163,6 @@ int atl1e_read_mac_addr(struct atl1e_hw *hw)
>   * atl1e_hash_mc_addr
>   *  purpose
>   *      set hash value for a multicast address
> - *      hash calcu processing :
> - *          1. calcu 32bit CRC for multicast address
> - *          2. reverse crc with MSB to LSB
>   */
>  u32 atl1e_hash_mc_addr(struct atl1e_hw *hw, u8 *mc_addr)
>  {
> @@ -174,7 +171,6 @@ u32 atl1e_hash_mc_addr(struct atl1e_hw *hw, u8 *mc_addr)
>  	int i;
>  
>  	crc32 = ether_crc_le(6, mc_addr);
> -	crc32 = ~crc32;
>  	for (i = 0; i < 32; i++)
>  		value |= (((crc32 >> i) & 1) << (31 - i));
>  

Now it works.  Many thanks!

Happy hacking,
J. K. Cliburn - Nov. 12, 2008, 12:13 a.m.
On Tue, 11 Nov 2008 23:00:15 +0100
David Madore <david.madore@ens.fr> wrote:

> On Tue, Nov 11, 2008 at 10:08:16AM -0600, J. K. Cliburn wrote:
> > Can you please try this patch?
[...]
> Now it works.  Many thanks!

Thank you very much for reporting the bug and testing the fix.

Jay
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/atl1e/atl1e_hw.c b/drivers/net/atl1e/atl1e_hw.c
index 949e753..c0d5f7c 100644
--- a/drivers/net/atl1e/atl1e_hw.c
+++ b/drivers/net/atl1e/atl1e_hw.c
@@ -163,9 +163,6 @@  int atl1e_read_mac_addr(struct atl1e_hw *hw)
  * atl1e_hash_mc_addr
  *  purpose
  *      set hash value for a multicast address
- *      hash calcu processing :
- *          1. calcu 32bit CRC for multicast address
- *          2. reverse crc with MSB to LSB
  */
 u32 atl1e_hash_mc_addr(struct atl1e_hw *hw, u8 *mc_addr)
 {
@@ -174,7 +171,6 @@  u32 atl1e_hash_mc_addr(struct atl1e_hw *hw, u8 *mc_addr)
 	int i;
 
 	crc32 = ether_crc_le(6, mc_addr);
-	crc32 = ~crc32;
 	for (i = 0; i < 32; i++)
 		value |= (((crc32 >> i) & 1) << (31 - i));