summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-05-16 06:49:28 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-05-16 06:49:28 -0700
commit1924110d216ced8013580bcf9a90506741ed2b09 (patch)
tree8e8890098633b0fa8ecf49091aa83d02152a6129
parent647e9bf427ff68ea7b48a499383fc133616e210a (diff)
parent1ef28deec05881286bfe2cabe835f9a7c7e1bd6b (diff)
Merge "timer: Clear deferrable_pending while handling timer softirq"
-rw-r--r--kernel/time/timer.c9
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);
}
}