Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7ee0fddf authored by J. K. Cliburn's avatar J. K. Cliburn Committed by Jeff Garzik
Browse files

atl1e: fix broken multicast by removing unnecessary crc inversion



Inverting the crc after calling ether_crc_le() is unnecessary and breaks
multicast. Remove it.

Tested-by: default avatarDavid Madore <david.madore@ens.fr>
Signed-off-by: default avatarJay Cliburn <jcliburn@gmail.com>
Cc: stable@kernel.org
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent 81183059
Loading
Loading
Loading
Loading
+0 −4
Original line number Original line Diff line number Diff line
@@ -163,9 +163,6 @@ int atl1e_read_mac_addr(struct atl1e_hw *hw)
 * atl1e_hash_mc_addr
 * atl1e_hash_mc_addr
 *  purpose
 *  purpose
 *      set hash value for a multicast address
 *      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)
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;
	int i;


	crc32 = ether_crc_le(6, mc_addr);
	crc32 = ether_crc_le(6, mc_addr);
	crc32 = ~crc32;
	for (i = 0; i < 32; i++)
	for (i = 0; i < 32; i++)
		value |= (((crc32 >> i) & 1) << (31 - i));
		value |= (((crc32 >> i) & 1) << (31 - i));