via-rhine: fix mc_filter on big-endian arch
Subsystems (2)
PATCH 3/3 via-rhine: fix mc_filter on big-endian arch
A.J. from VIA Networking Technologies noticed that via-rhine is using cpu_to_le32() when preparing mc_filter hashes. This breaks Rhine hardware multicast filters on big-endian architectures.
Please apply.
Signed-off-by Roger Luethi <[email protected]>
drivers/net/via-rhine.c renamed from drivers/net/via-rhine.c.orig +1 -1
@@ -1748,7 +1748,7 @@ i++, mclist = mclist->next) {int bit_nr =ether_crc (ETH_ALEN , mclist->dmi_addr) >>26 ; - mc_filter[bit_nr >>5 ] |=cpu_to_le32 (1 << (bit_nr &31 )); + mc_filter[bit_nr >>5 ] |=1 << (bit_nr &31 ); }writel (mc_filter[0 ], ioaddr + MulticastFilter0);writel (mc_filter[1 ], ioaddr + MulticastFilter1);