]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: ethernet: ti: ale: clean ale tbl on init and intf restart
authorGrygorii Strashko <grygorii.strashko@ti.com>
Tue, 19 Nov 2019 22:19:13 +0000 (00:19 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 31 Dec 2019 15:36:11 +0000 (16:36 +0100)
[ Upstream commit 7fe579dfb90fcdf0c7722f33c772d5f0d1bc7cb6 ]

Clean CPSW ALE on init and intf restart (up/down) to avoid reading obsolete
or garbage entries from ALE table.

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/ti/cpsw_ale.c

index 5766225a4ce117957cdd77fe2a9d4ad4abc8f150..c245629a38c7675ae273139abb968beb786fbc90 100644 (file)
@@ -793,6 +793,7 @@ EXPORT_SYMBOL_GPL(cpsw_ale_start);
 void cpsw_ale_stop(struct cpsw_ale *ale)
 {
        del_timer_sync(&ale->timer);
+       cpsw_ale_control_set(ale, 0, ALE_CLEAR, 1);
        cpsw_ale_control_set(ale, 0, ALE_ENABLE, 0);
 }
 EXPORT_SYMBOL_GPL(cpsw_ale_stop);
@@ -877,6 +878,7 @@ struct cpsw_ale *cpsw_ale_create(struct cpsw_ale_params *params)
                                        ALE_UNKNOWNVLAN_FORCE_UNTAG_EGRESS;
        }
 
+       cpsw_ale_control_set(ale, 0, ALE_CLEAR, 1);
        return ale;
 }
 EXPORT_SYMBOL_GPL(cpsw_ale_create);