.. | .. |
---|
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 */ |
---|