diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2017-05-15 14:56:50 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-05-30 18:35:32 +0200 |
commit | 7c25904508afef134d7a9d2ad1690ee6554a1faa (patch) | |
tree | d47750e02e4db44c1db625413e96ec4c6a1c05e1 /kernel/time/tick-sched.c | |
parent | nohz: Fix collision between tick and other hrtimers, again (diff) | |
download | linux-7c25904508afef134d7a9d2ad1690ee6554a1faa.tar.xz linux-7c25904508afef134d7a9d2ad1690ee6554a1faa.zip |
nohz: Reset next_tick cache even when the timer has no regs
Handle tick interrupts whose regs are NULL, out of general paranoia. It happens
when hrtimer_interrupt() is called from non-interrupt contexts, such as hotplug
CPU down events.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/time/tick-sched.c')
-rw-r--r-- | kernel/time/tick-sched.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index 764d2905e6a5..e3043873fcdc 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -1202,6 +1202,8 @@ static enum hrtimer_restart tick_sched_timer(struct hrtimer *timer) */ if (regs) tick_sched_handle(ts, regs); + else + ts->next_tick = 0; /* No need to reprogram if we are in idle or full dynticks mode */ if (unlikely(ts->tick_stopped)) |