diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c index 9f41327d3a6d..3bc3111ca531 100644 --- a/kernel/time/hrtimer.c +++ b/kernel/time/hrtimer.c @@ -1287,6 +1287,14 @@ static int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim, } first = enqueue_hrtimer(timer, new_base, mode); + + /* + * If the hrtimer interrupt is running, then it will reevaluate the + * clock bases and reprogram the clock event device. + */ + if (new_base->cpu_base->in_hrtirq) + return false; + if (!force_local) { /* * If the current CPU base is online, then the timer is