From: Bart Van Assche Date: Wed, 19 Jun 2013 00:05:33 +0000 (+1000) Subject: kernel/timer.c: fix jiffies wrap behavior of round_jiffies*() X-Git-Tag: next-20130619~2^2~616 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=7f4e510ecfb18176c71a0de41d6152018532d7bd;p=karo-tx-linux.git kernel/timer.c: fix jiffies wrap behavior of round_jiffies*() Make sure that the round_jiffies*() functions return a time that is in the future when the jiffies counter has recently wrapped. Signed-off-by: Bart Van Assche Cc: Thomas Gleixner Cc: Arjan van de Ven Cc: Stephen Rothwell Signed-off-by: Andrew Morton --- diff --git a/kernel/timer.c b/kernel/timer.c index 15ffdb3f1948..aa8b9642118b 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -149,9 +149,7 @@ static unsigned long round_jiffies_common(unsigned long j, int cpu, /* now that we have rounded, subtract the extra skew again */ j -= cpu * 3; - if (j <= jiffies) /* rounding ate our timeout entirely; */ - return original; - return j; + return time_is_after_jiffies(j) ? j : original; } /**