| Date | Wed, 3 Dec 2008 11:48:26 -0800 | From | Greg KH <> | Subject | [patch 006/104] atl1e: fix broken multicast by removing unnecessary crc inversion |
| |
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------ From: J. K. Cliburn <jcliburn@gmail.com>
commit 7ee0fddfe05f105d3346aa8774695e7130697836 upstream.
Inverting the crc after calling ether_crc_le() is unnecessary and breaks multicast. Remove it.
Tested-by: David Madore <david.madore@ens.fr> Signed-off-by: Jay Cliburn <jcliburn@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- drivers/net/atl1e/atl1e_hw.c | 4 ---- 1 file changed, 4 deletions(-)
--- 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 * 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 * int i; crc32 = ether_crc_le(6, mc_addr); - crc32 = ~crc32; for (i = 0; i < 32; i++) value |= (((crc32 >> i) & 1) << (31 - i));
|