提交 9030b3dd 编写于 作者: J Joakim Tjernlund 提交者: Jeff Garzik

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: NJoakim Tjernlund <Joakim.Tjernlund@transmode.se>
Acked-by: ucc_geth maintainer
Signed-off-by: NJeff Garzik <jeff@garzik.org>
上级 5e7bf8cc
......@@ -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);
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册