瀏覽代碼

ipv6: use round_jiffies

This timer normally happens once a minute, there is no need to cause an
early wakeup for it, so align it to next second boundary to safe power.
It can't be deferred because then it could take too long on cleanup or DoS.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Stephen Hemminger 17 年之前
父節點
當前提交
c8a4522245
共有 1 個文件被更改,包括 3 次插入2 次删除
  1. 3 2
      net/ipv6/ip6_fib.c

+ 3 - 2
net/ipv6/ip6_fib.c

@@ -1462,8 +1462,9 @@ void fib6_run_gc(unsigned long expires, struct net *net)
 	fib6_clean_all(net, fib6_age, 0, NULL);
 	fib6_clean_all(net, fib6_age, 0, NULL);
 
 
 	if (gc_args.more)
 	if (gc_args.more)
-		mod_timer(&net->ipv6.ip6_fib_timer, jiffies +
-			  net->ipv6.sysctl.ip6_rt_gc_interval);
+		mod_timer(&net->ipv6.ip6_fib_timer,
+			  round_jiffies(jiffies
+					+ net->ipv6.sysctl.ip6_rt_gc_interval));
 	else
 	else
 		del_timer(&net->ipv6.ip6_fib_timer);
 		del_timer(&net->ipv6.ip6_fib_timer);
 	spin_unlock_bh(&fib6_gc_lock);
 	spin_unlock_bh(&fib6_gc_lock);