mirror of https://gitee.com/openkylin/linux.git
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: Esben Haabendal <esben@geanix.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1bd33bf0fe
commit
1b3fa5cf85
|
@ -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 */
|
||||||
|
|
Loading…
Reference in New Issue