Hi, RTL8139 interfaces cannot receive multicast packets on big-endian machines. Tested kernel version is 2.4.19pre6. Both driver/net/8139too.c and driver/net/8139cp.c have this problem. These drivers have unnecessary byte-swap codes in their multicast setup procedure. IPv6 networking on big-endian machines is deeply affected because multicast packets are used to propagate routing informations. Applying the following paches fixes this problem. --- ./drivers/net/8139cp.c- Wed Apr 10 05:42:41 2002 +++ ./drivers/net/8139cp.c Sat Apr 13 22:15:31 2002 @@ -812,7 +812,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); rx_mode |= AcceptMulticast; } } --- ./drivers/net/8139too.c- Wed Apr 10 05:43:48 2002 +++ ./drivers/net/8139too.c Sat Apr 13 21:52:09 2002 @@ -2430,7 +2430,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); rx_mode |= AcceptMulticast; } } Naoki Hamada nao@tom-yam.or.jp - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/