tick: Mark sched_timer to expire in hard interrupt context
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Fri, 23 Aug 2019 11:38:45 +0000 (13:38 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 28 Aug 2019 11:01:26 +0000 (13:01 +0200)
sched_timer must be initialized with the _HARD mode suffix to ensure expiry
in hard interrupt context on RT.

The previous conversion to HARD expiry mode missed on one instance in
tick_nohz_switch_to_nohz(). Fix it up.

Fixes: 902a9f9c50905 ("tick: Mark tick related hrtimers to expiry in hard interrupt context")
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20190823113845.12125-3-bigeasy@linutronix.de
kernel/time/tick-sched.c

index 01ff32a..9558517 100644 (file)
@@ -1233,7 +1233,7 @@ static void tick_nohz_switch_to_nohz(void)
         * Recycle the hrtimer in ts, so we can share the
         * hrtimer_forward with the highres code.
         */
-       hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
+       hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_HARD);
        /* Get the next period */
        next = tick_init_jiffy_update();