On Mon, 17 Sep 2012 17:10:17 +0200
Jiri Pirko [off-list ref] 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.
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.