diff options
Diffstat (limited to 'kernel/time/timer.c')
| -rw-r--r-- | kernel/time/timer.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/time/timer.c b/kernel/time/timer.c index 8315d4d72cc3..75ce9cbc313d 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c @@ -151,10 +151,11 @@ static inline struct tvec_base *get_target_base(struct tvec_base *base, static inline void __run_deferrable_timers(void) { - if (time_after_eq(jiffies, tvec_base_deferrable.timer_jiffies)) { - if ((atomic_cmpxchg(&deferrable_pending, 1, 0) && - tick_do_timer_cpu == TICK_DO_TIMER_NONE) || - tick_do_timer_cpu == smp_processor_id()) + if ((atomic_cmpxchg(&deferrable_pending, 1, 0) && + tick_do_timer_cpu == TICK_DO_TIMER_NONE) || + tick_do_timer_cpu == smp_processor_id()) { + if (time_after_eq(jiffies, + tvec_base_deferrable.timer_jiffies)) __run_timers(&tvec_base_deferrable); } } |
