summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorAaron Kramer <a-kramer@ti.com>2019-04-05 13:31:36 -0400
committerDavid S. Miller <davem@davemloft.net>2019-04-06 18:32:21 -0700
commit5150b45fd3553bf86b4a3d58d17146877480c0cc (patch)
treef2e82ea2a3c31e7ecef2fea11b0cdb46861b14f6 /net
parentfc4ecaeebd26c77d463c898d9dd3edee234e371c (diff)
downloadlinux-5150b45fd3553bf86b4a3d58d17146877480c0cc.tar.gz
linux-5150b45fd3553bf86b4a3d58d17146877480c0cc.tar.bz2
linux-5150b45fd3553bf86b4a3d58d17146877480c0cc.zip
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>
Diffstat (limited to 'net')
-rw-r--r--net/hsr/hsr_framereg.c4
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)
}
}
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,