nohz: Reset next_tick cache even when the timer has no regs
authorFrederic Weisbecker <fweisbec@gmail.com>
Mon, 15 May 2017 12:56:50 +0000 (14:56 +0200)
committerIngo Molnar <mingo@kernel.org>
Tue, 30 May 2017 16:35:32 +0000 (18:35 +0200)
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>
kernel/time/tick-sched.c

index 764d2905e6a5e00602fe461e3a9ad205d8f21cc1..e3043873fcdc122884ab22a643687d4d63179d7e 100644 (file)
@@ -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))