timers: Use already existing function for forwarding timer base
authorAnna-Maria Behnsen <anna-maria@linutronix.de>
Fri, 1 Dec 2023 09:26:32 +0000 (10:26 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 20 Dec 2023 15:49:38 +0000 (16:49 +0100)
There is an already existing function for forwarding the timer
base. Forwarding the timer base is implemented directly in
get_next_timer_interrupt() as well.

Remove the code duplication and invoke __forward_timer_base() instead.

Signed-off-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Link: https://lore.kernel.org/r/20231201092654.34614-11-anna-maria@linutronix.de
kernel/time/timer.c

index 5b02e169ab236faaf7ecc6fbbc3f665d0cd8a2b4..1a73d396101b2f127fda6aefbbec058256764ca2 100644 (file)
@@ -1939,15 +1939,9 @@ u64 get_next_timer_interrupt(unsigned long basej, u64 basem)
 
        /*
         * We have a fresh next event. Check whether we can forward the
-        * base. We can only do that when @basej is past base->clk
-        * otherwise we might rewind base->clk.
+        * base.
         */
-       if (time_after(basej, base->clk)) {
-               if (time_after(nextevt, basej))
-                       base->clk = basej;
-               else if (time_after(nextevt, base->clk))
-                       base->clk = nextevt;
-       }
+       __forward_timer_base(base, basej);
 
        if (time_before_eq(nextevt, basej)) {
                expires = basem;