| .. | .. | 
|---|
| 11 | 11 |   | 
|---|
| 12 | 12 |  extern void setup_cpu_local_masks(void); | 
|---|
| 13 | 13 |   | 
|---|
 | 14 | +/*  | 
|---|
 | 15 | + * NMI and MCE exceptions need cpu_is_offline() _really_ early,  | 
|---|
 | 16 | + * provide an arch_ special for them to avoid instrumentation.  | 
|---|
 | 17 | + */  | 
|---|
 | 18 | +#if NR_CPUS > 1  | 
|---|
 | 19 | +static __always_inline bool arch_cpu_online(int cpu)  | 
|---|
 | 20 | +{  | 
|---|
 | 21 | +	return arch_test_bit(cpu, cpumask_bits(cpu_online_mask));  | 
|---|
 | 22 | +}  | 
|---|
 | 23 | +#else  | 
|---|
 | 24 | +static __always_inline bool arch_cpu_online(int cpu)  | 
|---|
 | 25 | +{  | 
|---|
 | 26 | +	return cpu == 0;  | 
|---|
 | 27 | +}  | 
|---|
 | 28 | +#endif  | 
|---|
 | 29 | +  | 
|---|
 | 30 | +#define arch_cpu_is_offline(cpu)	unlikely(!arch_cpu_online(cpu))  | 
|---|
 | 31 | +  | 
|---|
| 14 | 32 |  #endif /* __ASSEMBLY__ */ | 
|---|
| 15 | 33 |  #endif /* _ASM_X86_CPUMASK_H */ | 
|---|