cpumask: Add assign cpu

Standardize an assign_cpu function for cpumasks.

Signed-off-by: Charlie Jenkins <charlie@rivosinc.com>
Link: https://lore.kernel.org/r/20240312-fencei-v13-4-4b6bdc2bbf32@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
Charlie Jenkins 2024-03-12 16:53:43 -07:00 committed by Palmer Dabbelt
parent 6a08e4709c
commit decde1fa20
No known key found for this signature in database
GPG key ID: 2E1319F35FBB1889
2 changed files with 17 additions and 1 deletions

View file

@ -170,7 +170,7 @@ static void set_icache_stale_mask(void)
stale_cpu = cpumask_test_cpu(smp_processor_id(), mask);
cpumask_setall(mask);
assign_bit(cpumask_check(smp_processor_id()), cpumask_bits(mask), stale_cpu);
cpumask_assign_cpu(smp_processor_id(), mask, stale_cpu);
}
#endif

View file

@ -492,6 +492,22 @@ static __always_inline void __cpumask_clear_cpu(int cpu, struct cpumask *dstp)
__clear_bit(cpumask_check(cpu), cpumask_bits(dstp));
}
/**
* cpumask_assign_cpu - assign a cpu in a cpumask
* @cpu: cpu number (< nr_cpu_ids)
* @dstp: the cpumask pointer
* @bool: the value to assign
*/
static __always_inline void cpumask_assign_cpu(int cpu, struct cpumask *dstp, bool value)
{
assign_bit(cpumask_check(cpu), cpumask_bits(dstp), value);
}
static __always_inline void __cpumask_assign_cpu(int cpu, struct cpumask *dstp, bool value)
{
__assign_bit(cpumask_check(cpu), cpumask_bits(dstp), value);
}
/**
* cpumask_test_cpu - test for a cpu in a cpumask
* @cpu: cpu number (< nr_cpu_ids)