On Sat, 2022-03-05 at 09:44 -0700, dann frazier wrote:
From: Dietmar Eggemann dietmar.eggemann@arm.com
commit 71e5f6644fb2f3304fcb310145ded234a37e7cc1 upstream.
Commit "sched/topology: Make sched_init_numa() use a set for the deduplicating sort" allocates 'i + nr_levels (level)' instead of 'i + nr_levels + 1' sched_domain_topology_level.
[]
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
[]
@@ -1655,7 +1655,7 @@ void sched_init_numa(void) /* Compute default topology size */ for (i = 0; sched_domain_topology[i].mask; i++);
Thanks.
Couple trivial notes:
A trailing semicolon in a for loop, "for (...);" can be error prone and is also the only usage of that style in kernel/ path.
A more common usage might be:
i = 0; while (sched_domain_topology[i].mask) i++;
- tl = kzalloc((i + nr_levels) *
- tl = kzalloc((i + nr_levels + 1) * sizeof(struct sched_domain_topology_level), GFP_KERNEL);
kcalloc would be better, although the array is completely set by the loop below so the zeroing isn't necessary. Maybe use kmalloc_array.
Doubtful there's an overall impact though.