Commit 1b3fa5cf authored by Esben Haabendal's avatar Esben Haabendal Committed by David S. Miller

net: ll_temac: Cleanup multicast filter on change

Avoid leaving old address table entries when using multicast.  If more than
one multicast address were removed, only the first removed address would
actually be cleared.
Signed-off-by: default avatarEsben Haabendal <esben@geanix.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1bd33bf0
...@@ -485,10 +485,13 @@ static void temac_set_multicast_list(struct net_device *ndev) ...@@ -485,10 +485,13 @@ static void temac_set_multicast_list(struct net_device *ndev)
multi_addr_lsw); multi_addr_lsw);
i++; i++;
} }
} else { }
/* Clear all or remaining/unused address table entries */
while (i < MULTICAST_CAM_TABLE_NUM) {
temac_indirect_out32_locked(lp, XTE_MAW0_OFFSET, 0); temac_indirect_out32_locked(lp, XTE_MAW0_OFFSET, 0);
temac_indirect_out32_locked(lp, XTE_MAW1_OFFSET, i << 16); temac_indirect_out32_locked(lp, XTE_MAW1_OFFSET, i << 16);
} i++;
} }
/* Enable address filter block if currently disabled */ /* Enable address filter block if currently disabled */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment