[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#494363: marked as done (thecus nic driver multicast issue)



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.

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: