When enqueuing a timer with expiry X into a timer queue, where already a timer with expriy X is queued, the new timer is queued on the right-hand side of the already queued timer. Therefore it is no problem, to enqueue a hrtimer on a remote CPU with the same expiry time than the programmed expiry time (expires_next) on this CPU, because the reprogramming path is not executed - it is not the "leftmost" hrtimer. Signed-off-by: Anna-Maria Gleixner --- kernel/time/hrtimer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/kernel/time/hrtimer.c +++ b/kernel/time/hrtimer.c @@ -168,7 +168,7 @@ hrtimer_check_target(struct hrtimer *tim ktime_t expires; expires = ktime_sub(hrtimer_get_expires(timer), new_base->offset); - return expires <= new_base->cpu_base->expires_next; + return expires < new_base->cpu_base->expires_next; } #ifdef CONFIG_NO_HZ_COMMON