On Mon, 17 Sep 2012 22:47:24 +0200 Jiri Pirko <j...@resnulli.us> wrote:
> Mon, Sep 17, 2012 at 06:12:14PM CEST, shemmin...@vyatta.com wrote: > >On Mon, 17 Sep 2012 17:10:17 +0200 > >Jiri Pirko <j...@resnulli.us> wrote: > > > >> 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") > > > > >> 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. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/