]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
timers/migration: Clean up the loop in tmigr_quick_check()
authorPetr Tesarik <ptesarik@suse.com>
Fri, 6 Jun 2025 12:48:18 +0000 (14:48 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 12 Jun 2025 19:03:45 +0000 (21:03 +0200)
Make the logic easier to follow:

  - Remove the final return statement, which is never reached, and move the
    actual walk-terminating return statement out of the do-while loop.

  - Remove the else-clause to reduce indentation. If a non-lonely group is
    encountered during the walk, the loop is immediately terminated with a
    return statement anyway; no need for an else.

Signed-off-by: Petr Tesarik <ptesarik@suse.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Link: https://lore.kernel.org/all/20250606124818.455560-1-ptesarik@suse.com
kernel/time/timer_migration.c

index 2f6330831f08458e853dc10e2e79351d45084e71..c0c54dc5314c3f920c8b5c10cd196f52ee313d0e 100644 (file)
@@ -1405,23 +1405,20 @@ u64 tmigr_quick_check(u64 nextevt)
                return KTIME_MAX;
 
        do {
-               if (!tmigr_check_lonely(group)) {
+               if (!tmigr_check_lonely(group))
                        return KTIME_MAX;
-               } else {
-                       /*
-                        * Since current CPU is active, events may not be sorted
-                        * from bottom to the top because the CPU's event is ignored
-                        * up to the top and its sibling's events not propagated upwards.
-                        * Thus keep track of the lowest observed expiry.
-                        */
-                       nextevt = min_t(u64, nextevt, READ_ONCE(group->next_expiry));
-                       if (!group->parent)
-                               return nextevt;
-               }
+
+               /*
+                * Since current CPU is active, events may not be sorted
+                * from bottom to the top because the CPU's event is ignored
+                * up to the top and its sibling's events not propagated upwards.
+                * Thus keep track of the lowest observed expiry.
+                */
+               nextevt = min_t(u64, nextevt, READ_ONCE(group->next_expiry));
                group = group->parent;
        } while (group);
 
-       return KTIME_MAX;
+       return nextevt;
 }
 
 /*