Messages in this thread Patch in this message | | | From | Yury Norov <> | Subject | [PATCH 2/4] lib/group_cpus: relax atomicity requirement in grp_spread_init_one() | Date | Wed, 1 Nov 2023 15:58:18 -0700 |
| |
Because the function is called with cpus_read_lock() held, all the masks involved are stabilized, and thus any extra atomicity is not required.
Signed-off-by: Yury Norov <yury.norov@gmail.com> --- lib/group_cpus.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/lib/group_cpus.c b/lib/group_cpus.c index aa3f6815bb12..b1e7d9cc9da9 100644 --- a/lib/group_cpus.c +++ b/lib/group_cpus.c @@ -24,8 +24,8 @@ static void grp_spread_init_one(struct cpumask *irqmsk, struct cpumask *nmsk, if (cpu >= nr_cpu_ids) return; - cpumask_clear_cpu(cpu, nmsk); - cpumask_set_cpu(cpu, irqmsk); + __cpumask_clear_cpu(cpu, nmsk); + __cpumask_set_cpu(cpu, irqmsk); cpus_per_grp--; /* If the cpu has siblings, use them first */ @@ -34,9 +34,8 @@ static void grp_spread_init_one(struct cpumask *irqmsk, struct cpumask *nmsk, sibl = cpumask_next(sibl, siblmsk); if (sibl >= nr_cpu_ids) break; - if (!cpumask_test_and_clear_cpu(sibl, nmsk)) - continue; - cpumask_set_cpu(sibl, irqmsk); + __cpumask_clear_cpu(sibl, nmsk); + __cpumask_set_cpu(sibl, irqmsk); cpus_per_grp--; } } -- 2.39.2
| |