diff options
author | Aaron Kramer <a-kramer@ti.com> | 2019-04-05 13:31:36 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-04-06 21:32:21 -0400 |
commit | 5150b45fd3553bf86b4a3d58d17146877480c0cc (patch) | |
tree | f2e82ea2a3c31e7ecef2fea11b0cdb46861b14f6 | |
parent | fc4ecaeebd26c77d463c898d9dd3edee234e371c (diff) |
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 <a-kramer@ti.com>
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/hsr/hsr_framereg.c | 4 |
1 files changed, 4 insertions, 0 deletions
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) | |||
405 | } | 405 | } |
406 | } | 406 | } |
407 | rcu_read_unlock(); | 407 | rcu_read_unlock(); |
408 | |||
409 | /* Restart timer */ | ||
410 | mod_timer(&hsr->prune_timer, | ||
411 | jiffies + msecs_to_jiffies(PRUNE_PERIOD)); | ||
408 | } | 412 | } |
409 | 413 | ||
410 | void *hsr_get_next_node(struct hsr_priv *hsr, void *_pos, | 414 | void *hsr_get_next_node(struct hsr_priv *hsr, void *_pos, |