Skip to content

Commit 6c181b5

Browse files
Frederic WeisbeckerKAGA-KOKO
authored andcommitted
timers/migration: Convert "while" loops to use "for"
Both the "do while" and "while" loops in tmigr_setup_groups() eventually mimic the behaviour of "for" loops. Simplify accordingly. Signed-off-by: Frederic Weisbecker <frederic@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://patch.msgid.link/20251024132536.39841-2-frederic@kernel.org
1 parent 4138787 commit 6c181b5

1 file changed

Lines changed: 13 additions & 10 deletions

File tree

kernel/time/timer_migration.c

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1642,22 +1642,23 @@ static void tmigr_connect_child_parent(struct tmigr_group *child,
16421642
static int tmigr_setup_groups(unsigned int cpu, unsigned int node)
16431643
{
16441644
struct tmigr_group *group, *child, **stack;
1645-
int top = 0, err = 0, i = 0;
1645+
int i, top = 0, err = 0;
16461646
struct list_head *lvllist;
16471647

16481648
stack = kcalloc(tmigr_hierarchy_levels, sizeof(*stack), GFP_KERNEL);
16491649
if (!stack)
16501650
return -ENOMEM;
16511651

1652-
do {
1652+
for (i = 0; i < tmigr_hierarchy_levels; i++) {
16531653
group = tmigr_get_group(cpu, node, i);
16541654
if (IS_ERR(group)) {
16551655
err = PTR_ERR(group);
1656+
i--;
16561657
break;
16571658
}
16581659

16591660
top = i;
1660-
stack[i++] = group;
1661+
stack[i] = group;
16611662

16621663
/*
16631664
* When booting only less CPUs of a system than CPUs are
@@ -1667,16 +1668,18 @@ static int tmigr_setup_groups(unsigned int cpu, unsigned int node)
16671668
* be different from tmigr_hierarchy_levels, contains only a
16681669
* single group.
16691670
*/
1670-
if (group->parent || list_is_singular(&tmigr_level_list[i - 1]))
1671+
if (group->parent || list_is_singular(&tmigr_level_list[i]))
16711672
break;
1673+
}
16721674

1673-
} while (i < tmigr_hierarchy_levels);
1674-
1675-
/* Assert single root */
1676-
WARN_ON_ONCE(!err && !group->parent && !list_is_singular(&tmigr_level_list[top]));
1675+
/* Assert single root without parent */
1676+
if (WARN_ON_ONCE(i >= tmigr_hierarchy_levels))
1677+
return -EINVAL;
1678+
if (WARN_ON_ONCE(!err && !group->parent && !list_is_singular(&tmigr_level_list[top])))
1679+
return -EINVAL;
16771680

1678-
while (i > 0) {
1679-
group = stack[--i];
1681+
for (; i >= 0; i--) {
1682+
group = stack[i];
16801683

16811684
if (err < 0) {
16821685
list_del(&group->list);

0 commit comments

Comments
 (0)