| .. | .. |
|---|
| 9 | 9 | #define __ASM_SMP_H |
|---|
| 10 | 10 | |
|---|
| 11 | 11 | #include <asm/sigp.h> |
|---|
| 12 | | - |
|---|
| 13 | | -#ifdef CONFIG_SMP |
|---|
| 14 | | - |
|---|
| 15 | 12 | #include <asm/lowcore.h> |
|---|
| 13 | +#include <asm/processor.h> |
|---|
| 16 | 14 | |
|---|
| 17 | 15 | #define raw_smp_processor_id() (S390_lowcore.cpu_nr) |
|---|
| 18 | 16 | |
|---|
| .. | .. |
|---|
| 33 | 31 | extern int smp_find_processor_id(u16 address); |
|---|
| 34 | 32 | extern int smp_store_status(int cpu); |
|---|
| 35 | 33 | extern void smp_save_dump_cpus(void); |
|---|
| 36 | | -extern int smp_vcpu_scheduled(int cpu); |
|---|
| 37 | 34 | extern void smp_yield_cpu(int cpu); |
|---|
| 38 | 35 | extern void smp_cpu_set_polarization(int cpu, int val); |
|---|
| 39 | 36 | extern int smp_cpu_get_polarization(int cpu); |
|---|
| 37 | +extern int smp_cpu_get_cpu_address(int cpu); |
|---|
| 40 | 38 | extern void smp_fill_possible_mask(void); |
|---|
| 41 | 39 | extern void smp_detect_cpus(void); |
|---|
| 42 | | - |
|---|
| 43 | | -#else /* CONFIG_SMP */ |
|---|
| 44 | | - |
|---|
| 45 | | -#define smp_cpu_mtid 0 |
|---|
| 46 | | - |
|---|
| 47 | | -static inline void smp_call_ipl_cpu(void (*func)(void *), void *data) |
|---|
| 48 | | -{ |
|---|
| 49 | | - func(data); |
|---|
| 50 | | -} |
|---|
| 51 | | - |
|---|
| 52 | | -static inline void smp_call_online_cpu(void (*func)(void *), void *data) |
|---|
| 53 | | -{ |
|---|
| 54 | | - func(data); |
|---|
| 55 | | -} |
|---|
| 56 | | - |
|---|
| 57 | | -static inline void smp_emergency_stop(void) |
|---|
| 58 | | -{ |
|---|
| 59 | | -} |
|---|
| 60 | | - |
|---|
| 61 | | -static inline int smp_find_processor_id(u16 address) { return 0; } |
|---|
| 62 | | -static inline int smp_store_status(int cpu) { return 0; } |
|---|
| 63 | | -static inline int smp_vcpu_scheduled(int cpu) { return 1; } |
|---|
| 64 | | -static inline void smp_yield_cpu(int cpu) { } |
|---|
| 65 | | -static inline void smp_fill_possible_mask(void) { } |
|---|
| 66 | | -static inline void smp_detect_cpus(void) { } |
|---|
| 67 | | - |
|---|
| 68 | | -#endif /* CONFIG_SMP */ |
|---|
| 69 | 40 | |
|---|
| 70 | 41 | static inline void smp_stop_cpu(void) |
|---|
| 71 | 42 | { |
|---|
| .. | .. |
|---|
| 83 | 54 | return cpu - (cpu % (smp_cpu_mtid + 1)); |
|---|
| 84 | 55 | } |
|---|
| 85 | 56 | |
|---|
| 86 | | -#ifdef CONFIG_HOTPLUG_CPU |
|---|
| 57 | +static inline void smp_cpus_done(unsigned int max_cpus) |
|---|
| 58 | +{ |
|---|
| 59 | +} |
|---|
| 60 | + |
|---|
| 87 | 61 | extern int smp_rescan_cpus(void); |
|---|
| 88 | 62 | extern void __noreturn cpu_die(void); |
|---|
| 89 | 63 | extern void __cpu_die(unsigned int cpu); |
|---|
| 90 | 64 | extern int __cpu_disable(void); |
|---|
| 91 | | -#else |
|---|
| 92 | | -static inline int smp_rescan_cpus(void) { return 0; } |
|---|
| 93 | | -static inline void cpu_die(void) { } |
|---|
| 94 | | -#endif |
|---|
| 65 | +extern void schedule_mcck_handler(void); |
|---|
| 95 | 66 | |
|---|
| 96 | 67 | #endif /* __ASM_SMP_H */ |
|---|