]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
hrtimer: Evaluate timer expiry only once
authorThomas Gleixner <tglx@kernel.org>
Tue, 24 Feb 2026 16:37:14 +0000 (17:37 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Fri, 27 Feb 2026 15:40:10 +0000 (16:40 +0100)
No point in accessing the timer twice.

Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://patch.msgid.link/20260224163430.409352042@kernel.org
kernel/time/hrtimer.c

index 0448ba9a4ab6a924479a51a583300213866aed22..e6f02e9803717c083bac1a5409d9c66965de2dae 100644 (file)
@@ -810,10 +810,11 @@ static void hrtimer_reprogram(struct hrtimer *timer, bool reprogram)
 {
        struct hrtimer_cpu_base *cpu_base = this_cpu_ptr(&hrtimer_bases);
        struct hrtimer_clock_base *base = timer->base;
-       ktime_t expires = ktime_sub(hrtimer_get_expires(timer), base->offset);
+       ktime_t expires = hrtimer_get_expires(timer);
 
-       WARN_ON_ONCE(hrtimer_get_expires(timer) < 0);
+       WARN_ON_ONCE(expires < 0);
 
+       expires = ktime_sub(expires, base->offset);
        /*
         * CLOCK_REALTIME timer might be requested with an absolute
         * expiry time which is less than base->offset. Set it to 0.