On Wed, 2009-08-12 at 17:17 -0700, Steve Langasek wrote: > On Wed, Aug 12, 2009 at 01:07:28AM +0100, Ben Hutchings wrote: > > Now that I've looked at the differences between different controller > > revisions, it appears that the switch in byte ordering for the multicast > > hash bitmap was made between the RTL8169 family (PCI) and RTL8168 family > > (PCI Express). The recent fix applied to some members of the latter > > family. > > > One difference I noted between the vendor driver and the in-tree driver > > is in the ordering of register writes. It probably doesn't make a > > difference, but perhaps you could try changing: > > > RTL_W32(MAR0 + 0, mc_filter[0]); > > RTL_W32(MAR0 + 4, mc_filter[1]); > > > RTL_W32(RxConfig, tmp); > > > to: > > > RTL_W32(RxConfig, tmp); > > RTL_W32(MAR0 + 0, mc_filter[0]); > > RTL_W32(MAR0 + 4, mc_filter[1]); > > > in rtl_set_rx_mode(). > > Applied, rebuilt; doesn't seem to have fixed the problem.
Can you try adding: dprintk("tmp = %#x mc_filter = { %#x, %#x }\n", tmp, mc_filter[0], mc_filter[1]); to rtl_set_rx_mode() and reporting the output? Can you also get statistics with "ethtool -S eth0" before and after sending multicast packets that the Thecus NIC should receive? Ben. -- Ben Hutchings Unix is many things to many people, but it's never been everything to anybody.
signature.asc
Description: This is a digitally signed message part