diff options
Diffstat (limited to 'arch/powerpc/kernel/crash.c')
| -rw-r--r-- | arch/powerpc/kernel/crash.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/crash.c b/arch/powerpc/kernel/crash.c index 358cecdc6aef..f04c18e08b8b 100644 --- a/arch/powerpc/kernel/crash.c +++ b/arch/powerpc/kernel/crash.c | |||
| @@ -44,6 +44,7 @@ | |||
| 44 | /* This keeps a track of which one is crashing cpu. */ | 44 | /* This keeps a track of which one is crashing cpu. */ |
| 45 | int crashing_cpu = -1; | 45 | int crashing_cpu = -1; |
| 46 | static cpumask_t cpus_in_crash = CPU_MASK_NONE; | 46 | static cpumask_t cpus_in_crash = CPU_MASK_NONE; |
| 47 | cpumask_t cpus_in_sr = CPU_MASK_NONE; | ||
| 47 | 48 | ||
| 48 | static u32 *append_elf_note(u32 *buf, char *name, unsigned type, void *data, | 49 | static u32 *append_elf_note(u32 *buf, char *name, unsigned type, void *data, |
| 49 | size_t data_len) | 50 | size_t data_len) |
| @@ -139,7 +140,13 @@ void crash_ipi_callback(struct pt_regs *regs) | |||
| 139 | 140 | ||
| 140 | if (ppc_md.kexec_cpu_down) | 141 | if (ppc_md.kexec_cpu_down) |
| 141 | ppc_md.kexec_cpu_down(1, 1); | 142 | ppc_md.kexec_cpu_down(1, 1); |
| 143 | |||
| 144 | #ifdef CONFIG_PPC64 | ||
| 142 | kexec_smp_wait(); | 145 | kexec_smp_wait(); |
| 146 | #else | ||
| 147 | for (;;); /* FIXME */ | ||
| 148 | #endif | ||
| 149 | |||
| 143 | /* NOTREACHED */ | 150 | /* NOTREACHED */ |
| 144 | } | 151 | } |
| 145 | 152 | ||
| @@ -255,7 +262,11 @@ static void crash_kexec_prepare_cpus(int cpu) | |||
| 255 | * | 262 | * |
| 256 | * do this if kexec in setup.c ? | 263 | * do this if kexec in setup.c ? |
| 257 | */ | 264 | */ |
| 265 | #ifdef CONFIG_PPC64 | ||
| 258 | smp_release_cpus(); | 266 | smp_release_cpus(); |
| 267 | #else | ||
| 268 | /* FIXME */ | ||
| 269 | #endif | ||
| 259 | } | 270 | } |
| 260 | 271 | ||
| 261 | void crash_kexec_secondary(struct pt_regs *regs) | 272 | void crash_kexec_secondary(struct pt_regs *regs) |
