diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2017-05-11 10:36:19 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-05-17 02:19:26 -0400 |
commit | ce6cf9a15d62fd7ee92f4f9bb754883bacf85a3e (patch) | |
tree | 215a81c09298ed726f3cf10db4ec4116d91e94a0 /kernel/time/tick-sched.c | |
parent | b23afd384801711ab6dbccd259cc14cb09a1dcaf (diff) |
nohz: Add hrtimer sanity check
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/time/tick-sched.c')
-rw-r--r-- | kernel/time/tick-sched.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index 64c97fc130c4..d212bb62bc08 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c | |||
@@ -771,8 +771,13 @@ static ktime_t tick_nohz_stop_sched_tick(struct tick_sched *ts, | |||
771 | tick = expires; | 771 | tick = expires; |
772 | 772 | ||
773 | /* Skip reprogram of event if its not changed */ | 773 | /* Skip reprogram of event if its not changed */ |
774 | if (ts->tick_stopped && (expires == dev->next_event)) | 774 | if (ts->tick_stopped) { |
775 | goto out; | 775 | if (hrtimer_active(&ts->sched_timer)) |
776 | WARN_ON_ONCE(hrtimer_get_expires(&ts->sched_timer) < dev->next_event); | ||
777 | |||
778 | if (expires == dev->next_event) | ||
779 | goto out; | ||
780 | } | ||
776 | 781 | ||
777 | /* | 782 | /* |
778 | * nohz_stop_sched_tick can be called several times before | 783 | * nohz_stop_sched_tick can be called several times before |