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

Commit 9030b3dd authored by Joakim Tjernlund's avatar Joakim Tjernlund Committed by Jeff Garzik
Browse files

Fix ethernet multicast for ucc_geth.



hw_add_addr_in_hash() already swaps byte
order, don't do it in ucc_geth_set_multi() too.

Signed-off-by: default avatarJoakim Tjernlund <Joakim.Tjernlund@transmode.se>
Acked-by: ucc_geth maintainer
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 5e7bf8cc
Loading
Loading
Loading
Loading
+2 −13
Original line number Diff line number Diff line
@@ -2214,9 +2214,7 @@ static void ucc_geth_set_multi(struct net_device *dev)
	struct dev_mc_list *dmi;
	struct ucc_fast *uf_regs;
	struct ucc_geth_82xx_address_filtering_pram *p_82xx_addr_filt;
	u8 tempaddr[6];
	u8 *mcptr, *tdptr;
	int i, j;
	int i;

	ugeth = netdev_priv(dev);

@@ -2255,19 +2253,10 @@ static void ucc_geth_set_multi(struct net_device *dev)
				if (!(dmi->dmi_addr[0] & 1))
					continue;

				/* The address in dmi_addr is LSB first,
				 * and taddr is MSB first.  We have to
				 * copy bytes MSB first from dmi_addr.
				 */
				mcptr = (u8 *) dmi->dmi_addr + 5;
				tdptr = (u8 *) tempaddr;
				for (j = 0; j < 6; j++)
					*tdptr++ = *mcptr--;

				/* Ask CPM to run CRC and set bit in
				 * filter mask.
				 */
				hw_add_addr_in_hash(ugeth, tempaddr);
				hw_add_addr_in_hash(ugeth, dmi->dmi_addr);
			}
		}
	}