hrtimer: Make enqueue mode check work on RT
authorThomas Gleixner <tglx@linutronix.de>
Tue, 30 Jul 2019 18:15:25 +0000 (20:15 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 1 Aug 2019 18:51:19 +0000 (20:51 +0200)
commit0ab6a3ddbad40ef5b6b8c2353fd53fa4ecf9c479
tree335ebbdf4f72314e51e03ce182e20ac494259f06
parentae6683d815895c2be1e60e1942630fa99488055b
hrtimer: Make enqueue mode check work on RT

hrtimer_start_range_ns() has a WARN_ONCE() which verifies that a timer
which is marker for softirq expiry is not queued in the hard interrupt base
and vice versa.

When PREEMPT_RT is enabled, timers which are not explicitely marked to
expire in hard interrupt context are deferrred to the soft interrupt. So
the regular check would trigger.

Change the check, so when PREEMPT_RT is enabled, it is verified that the
timers marked for hard interrupt expiry are not tried to be queued for soft
interrupt expiry or any of the unmarked and softirq marked is tried to be
expired in hard interrupt context.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
include/linux/hrtimer.h
kernel/time/hrtimer.c