xref: /openbmc/linux/arch/x86/include/asm/cpumask.h (revision d4f28f07)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
206879033SJaswinder Singh Rajput #ifndef _ASM_X86_CPUMASK_H
306879033SJaswinder Singh Rajput #define _ASM_X86_CPUMASK_H
406879033SJaswinder Singh Rajput #ifndef __ASSEMBLY__
506879033SJaswinder Singh Rajput #include <linux/cpumask.h>
606879033SJaswinder Singh Rajput 
72f2f52baSBrian Gerst extern void setup_cpu_local_masks(void);
82f2f52baSBrian Gerst 
914d3b376SPeter Zijlstra /*
1014d3b376SPeter Zijlstra  * NMI and MCE exceptions need cpu_is_offline() _really_ early,
1114d3b376SPeter Zijlstra  * provide an arch_ special for them to avoid instrumentation.
1214d3b376SPeter Zijlstra  */
1314d3b376SPeter Zijlstra #if NR_CPUS > 1
arch_cpu_online(int cpu)1414d3b376SPeter Zijlstra static __always_inline bool arch_cpu_online(int cpu)
1514d3b376SPeter Zijlstra {
1614d3b376SPeter Zijlstra 	return arch_test_bit(cpu, cpumask_bits(cpu_online_mask));
1714d3b376SPeter Zijlstra }
18*f5c54f77SBorislav Petkov 
arch_cpumask_clear_cpu(int cpu,struct cpumask * dstp)19*f5c54f77SBorislav Petkov static __always_inline void arch_cpumask_clear_cpu(int cpu, struct cpumask *dstp)
20*f5c54f77SBorislav Petkov {
21*f5c54f77SBorislav Petkov 	arch_clear_bit(cpumask_check(cpu), cpumask_bits(dstp));
22*f5c54f77SBorislav Petkov }
2314d3b376SPeter Zijlstra #else
arch_cpu_online(int cpu)2414d3b376SPeter Zijlstra static __always_inline bool arch_cpu_online(int cpu)
2514d3b376SPeter Zijlstra {
2614d3b376SPeter Zijlstra 	return cpu == 0;
2714d3b376SPeter Zijlstra }
28*f5c54f77SBorislav Petkov 
arch_cpumask_clear_cpu(int cpu,struct cpumask * dstp)29*f5c54f77SBorislav Petkov static __always_inline void arch_cpumask_clear_cpu(int cpu, struct cpumask *dstp)
30*f5c54f77SBorislav Petkov {
31*f5c54f77SBorislav Petkov 	return;
32*f5c54f77SBorislav Petkov }
3314d3b376SPeter Zijlstra #endif
3414d3b376SPeter Zijlstra 
3514d3b376SPeter Zijlstra #define arch_cpu_is_offline(cpu)	unlikely(!arch_cpu_online(cpu))
3614d3b376SPeter Zijlstra 
3706879033SJaswinder Singh Rajput #endif /* __ASSEMBLY__ */
3806879033SJaswinder Singh Rajput #endif /* _ASM_X86_CPUMASK_H */
39