ipv6: use round_jiffies
authorStephen Hemminger <shemminger@vyatta.com>
Tue, 22 Jul 2008 21:34:09 +0000 (14:34 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 22 Jul 2008 21:34:09 +0000 (14:34 -0700)
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>
net/ipv6/ip6_fib.c

index e0922975c410bff607b0a99e9f9594d11d071688..03e23d058ec581bed41d00734d6059c456003a28 100644 (file)
@@ -1462,8 +1462,9 @@ void fib6_run_gc(unsigned long expires, struct net *net)
        fib6_clean_all(net, fib6_age, 0, NULL);
 
        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
                del_timer(&net->ipv6.ip6_fib_timer);
        spin_unlock_bh(&fib6_gc_lock);