From: Aaron Kramer Date: Fri, 5 Apr 2019 17:31:36 +0000 (-0400) Subject: net: hsr: Fix node prune function for forget time expiry X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=5150b45fd3553bf86b4a3d58d17146877480c0cc;p=openwrt%2Fstaging%2Fblogic.git net: hsr: Fix node prune function for forget time expiry HSR should forget nodes after configured node forget time expiry based on HSR_NODE_FORGET_TIME. As part of hsr_prune_nodes(), code checks to see if entries are to be flushed out if not heard for longer than forget time. But currently hsr_prune_nodes() is called only once during device creation. Restart the timer at the end of hsr_prune_nodes() so that hsr_prune_nodes() gets called periodically and forgotten entries are removed from node table. Signed-off-by: Aaron Kramer Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller --- diff --git a/net/hsr/hsr_framereg.c b/net/hsr/hsr_framereg.c index a3cc30ac8a5a..9fa9abd83018 100644 --- a/net/hsr/hsr_framereg.c +++ b/net/hsr/hsr_framereg.c @@ -405,6 +405,10 @@ void hsr_prune_nodes(struct timer_list *t) } } rcu_read_unlock(); + + /* Restart timer */ + mod_timer(&hsr->prune_timer, + jiffies + msecs_to_jiffies(PRUNE_PERIOD)); } void *hsr_get_next_node(struct hsr_priv *hsr, void *_pos,