Thread (14 messages) flat view 14 messages, 4 authors, 2012-10-08

Re: [patch net] sky2: fix rx filter setup on link up

From: Jiri Pirko <jiri@resnulli.us>
Date: 2012-09-18 06:13:45
Also in: lkml

Mon, Sep 17, 2012 at 11:15:07PM CEST, shemminger@vyatta.com wrote:
On Mon, 17 Sep 2012 22:47:24 +0200
Jiri Pirko [off-list ref] wrote:
quoted
Mon, Sep 17, 2012 at 06:12:14PM CEST, shemminger@vyatta.com wrote:
quoted
On Mon, 17 Sep 2012 17:10:17 +0200
Jiri Pirko [off-list ref] wrote:
quoted
In my case I have following problem. sky2_set_multicast() sets registers
GM_MC_ADDR_H[1-4] correctly to:
0000 0800 0001 0410
However, when adapter gets link and sky2_link_up() is called, the values
are for some reason different:
0000 0800 0016 0410
Rather than papering over the problem, it would be better to
trace back what is setting those registers and fix that code.
Yes, I did that. No code at sky2.[ch] is writing to this registers other
than sky2_set_multicast() and sky2_gmac_reset() (I hooked on sky2_write*()).
So I strongly believe this is a HW issue (maybe only issue of my revision
"Yukon-2 EC chip revision 2")
quoted
quoted
This in my case prevents iface to be able to receive packets with dst mac
01:80:C2:00:00:02 (LACPDU dst mac), which I set up previously by
SIOCADDMULTI.

So remember computed rx_filter data and write it to GM_MC_ADDR_H[1-4] on
link_up.
Please do some more root cause analysis. Just save/restoring the
registers is just a temporary workaround.
Are you sure it isn't IPv6 or something else setting additional mulitcast
addresses. You may need to instrument the set_multicast call.
I'm very sure that no code in sky2 is writing to GM_MC_ADDR_H[1-4] the
change I see in sky2_link_up(). When sky2_set_multicast() is called
again for any reason, the issue goes away and lacpdus are coming in.

I also experimentally used sky2_set_multicast() called from
sky2_link_up() and it helped as well.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help