diff --git a/kernel/timer.c b/kernel/timer.c index 1b399c89e3a0..3361cff2c83d 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -148,9 +148,11 @@ 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; + /* + * Make sure j is still in the future. Otherwise return the + * unmodified value. + */ + return time_is_after_jiffies(j) ? j : original; } /**