diff options
author | Ingo Molnar <mingo@kernel.org> | 2014-04-18 12:14:55 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-04-18 12:14:55 +0200 |
commit | 1111b680d34bc19190f02a1b4479c3fcc592c22e (patch) | |
tree | 9d45ad88b9354205a2d1fd76a338ab8693a16d86 /arch/s390/include/asm/smp.h | |
parent | 37b6cb475a6d74bc047c53bc323d6eb3113e27a4 (diff) | |
parent | 24223657806a0ebd0ae5c9caaf7b021091889cf2 (diff) |
Merge branch 'perf/urgent' into perf/core, to pick up PMU driver fixes.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/s390/include/asm/smp.h')
-rw-r--r-- | arch/s390/include/asm/smp.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/arch/s390/include/asm/smp.h b/arch/s390/include/asm/smp.h index 16077939409..21703f85b48 100644 --- a/arch/s390/include/asm/smp.h +++ b/arch/s390/include/asm/smp.h @@ -7,6 +7,8 @@ #ifndef __ASM_SMP_H #define __ASM_SMP_H +#include <asm/sigp.h> + #ifdef CONFIG_SMP #include <asm/lowcore.h> @@ -50,9 +52,18 @@ static inline int smp_store_status(int cpu) { return 0; } static inline int smp_vcpu_scheduled(int cpu) { return 1; } static inline void smp_yield_cpu(int cpu) { } static inline void smp_yield(void) { } -static inline void smp_stop_cpu(void) { } static inline void smp_fill_possible_mask(void) { } +static inline void smp_stop_cpu(void) +{ + u16 pcpu = stap(); + + for (;;) { + __pcpu_sigp(pcpu, SIGP_STOP, 0, NULL); + cpu_relax(); + } +} + #endif /* CONFIG_SMP */ #ifdef CONFIG_HOTPLUG_CPU |