netdrivers: fix mc_filter on big-endian arch
Subsystems (2)
PATCH 2/3 netdrivers: fix mc_filter on big-endian arch
This untested patch fixes hardware mc filters for tulip_core, winbond, and atp. Hopefully :-).
Please review and test.
Signed-off-by Roger Luethi <[email protected]>
drivers/net/tulip/winbond-840.c renamed from drivers/net/tulip/winbond-840.c.orig +1 -1
@@ -1439,7 +1439,7 @@ i++, mclist = mclist->next) {int filterbit = (ether_crc (ETH_ALEN , mclist->dmi_addr) >>26 ) ^0x3F ; filterbit &=0x3f ; - mc_filter[filterbit >>5 ] |=cpu_to_le32 (1 << (filterbit &31 )); + mc_filter[filterbit >>5 ] |=1 << (filterbit &31 ); } rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; }
drivers/net/tulip/tulip_core.c renamed from drivers/net/tulip/tulip_core.c.orig +1 -1
@@ -1059,7 +1059,7 @@else filterbit =ether_crc (ETH_ALEN , mclist->dmi_addr) >>26 ; filterbit &=0x3f ; - mc_filter[filterbit >>5 ] |=cpu_to_le32 (1 << (filterbit &31 )); + mc_filter[filterbit >>5 ] |=1 << (filterbit &31 );if (tulip_debug >2 ) { printk(KERN_INFO "%s: Added filter for %2.2x:%2.2x:%2.2x:" "%2.2x:%2.2x:%2.2x %8.8x bit %d.\n", dev->name,
drivers/net/atp.c renamed from drivers/net/atp.c.orig +1 -1
@@ -909,7 +909,7 @@ i++, mclist = mclist->next) {int filterbit =ether_crc_le (ETH_ALEN , mclist->dmi_addr) &0x3f ; - mc_filter[filterbit >>5 ] |=cpu_to_le32 (1 << (filterbit &31 )); + mc_filter[filterbit >>5 ] |=1 << (filterbit &31 ); } new_mode = CMR2h_Normal; }