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

Bug#407217: Multicast broken in r8169 for one version of Thecus N2100



On Mon, Jan 04, 2010 at 03:30:57PM +0000, Martin Michlmayr wrote:
> Jon, Sjoerg, Mikhail, Wouter: can one of you please test this kernel
> to see if it works on the N2100:
> http://merkel.debian.org/~tbm/tmp/kernel/linux-image-2.6.32-trunk-iop32x_2.6.32-4_armel.deb

Did anyone test the kernel build?

Cheers,
        Moritz

> * Ben Hutchings <ben@decadent.org.uk> [2009-10-16 04:27]:
> > I'd like to get this bug fixed in some way for the N2100, either by
> > setting all bits in the multicast hash for this specific hardware
> > (assuming we can detect it programmatically) or by adjusting the way we
> > generate the multicast hash.
> > 
> > Vince, do you have a test for this specific hardware?  I know it's MAC
> > type 4 (RTL8169SB/RTL8110SB) but this bug seems to be more specific than
> > that.
> > 
> > Some time back it was discovered that in MMIO mode the 64-bit address
> > registers need to be written high-bits-first on this hardware, because
> > writing the high 32 bits clears the low 32 bits.  Given that the
> > multicast hash table is also a 64-bit register, maybe it suffers from a
> > similar bug?  It might be worth trying the following change:
> > 
> > --- a/drivers/net/r8169.c
> > +++ b/drivers/net/r8169.c
> > @@ -3781,8 +3781,18 @@ static void rtl_set_rx_mode(struct net_device *dev)
> >  		mc_filter[1] = swab32(data);
> >  	}
> >  
> > +	pr_info("%s: mc_filter = { 0x%08x, 0x%08x }\n", __func__,
> > +		mc_filter[0], mc_filter[1]);
> > +
> >  	RTL_W32(MAR0 + 0, mc_filter[0]);
> >  	RTL_W32(MAR0 + 4, mc_filter[1]);
> > +	pr_info("%s: MAR = 0x%08lx%08lx\n", __func__,
> > +		RTL_R32(MAR0 + 4), RTL_R32(MAR0 + 0));
> > +
> > +	RTL_W32(MAR0 + 4, mc_filter[1]);
> > +	RTL_W32(MAR0 + 0, mc_filter[0]);
> > +	pr_info("%s: MAR = 0x%08lx%08lx\n", __func__,
> > +		RTL_R32(MAR0 + 4), RTL_R32(MAR0 + 0));
> >  
> >  	RTL_W32(RxConfig, tmp);
> >  
> > --- END ---
> > 
> > Ben.
> > 
> > -- 
> > Ben Hutchings
> > The most exhausting thing in life is being insincere. - Anne Morrow Lindberg
> 
> 
> 
> -- 
> Martin Michlmayr
> http://www.cyrius.com/
> 
> 
> 



Reply to: