[tip: timers/core] timers/migration: Clean up the loop in tmigr_quick_check()

From: tip-bot2 for Petr Tesarik
Date: Thu Jun 12 2025 - 16:50:04 EST


The following commit has been merged into the timers/core branch of tip:

Commit-ID: ff56a3e2a8613e8524f40ef2efa2c0169659e99e
Gitweb: https://git.kernel.org/tip/ff56a3e2a8613e8524f40ef2efa2c0169659e99e
Author: Petr Tesarik <ptesarik@xxxxxxxx>
AuthorDate: Fri, 06 Jun 2025 14:48:18 +02:00
Committer: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
CommitterDate: Thu, 12 Jun 2025 21:03:45 +02:00

timers/migration: Clean up the loop in tmigr_quick_check()

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@xxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Reviewed-by: Frederic Weisbecker <frederic@xxxxxxxxxx>
Link: https://lore.kernel.org/all/20250606124818.455560-1-ptesarik@xxxxxxxx

---
kernel/time/timer_migration.c | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/kernel/time/timer_migration.c b/kernel/time/timer_migration.c
index 2f63308..c0c54dc 100644
--- a/kernel/time/timer_migration.c
+++ b/kernel/time/timer_migration.c
@@ -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;
}

/*