diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-07-08 21:25:48 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-07-08 21:25:48 -0400 |
commit | 5f07aa7524e98d6f68f2bec54f155ef6012e2c9a (patch) | |
tree | 393b2db3213e6618ad1338f9b66019b0c05c6f75 /arch/powerpc/kernel/machine_kexec_64.c | |
parent | e467e104bb7482170b79f516d2025e7cfcaaa733 (diff) | |
parent | d09ec7387184eba9e3030496f0451204090ff610 (diff) |
Merge commit 'paulus-perf/master' into next
Diffstat (limited to 'arch/powerpc/kernel/machine_kexec_64.c')
-rw-r--r-- | arch/powerpc/kernel/machine_kexec_64.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c index ed31a29c4ff7..de6b70eac51d 100644 --- a/arch/powerpc/kernel/machine_kexec_64.c +++ b/arch/powerpc/kernel/machine_kexec_64.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <asm/sections.h> /* _end */ | 25 | #include <asm/sections.h> /* _end */ |
26 | #include <asm/prom.h> | 26 | #include <asm/prom.h> |
27 | #include <asm/smp.h> | 27 | #include <asm/smp.h> |
28 | #include <asm/hw_breakpoint.h> | ||
28 | 29 | ||
29 | int default_machine_kexec_prepare(struct kimage *image) | 30 | int default_machine_kexec_prepare(struct kimage *image) |
30 | { | 31 | { |
@@ -165,6 +166,7 @@ static void kexec_smp_down(void *arg) | |||
165 | while(kexec_all_irq_disabled == 0) | 166 | while(kexec_all_irq_disabled == 0) |
166 | cpu_relax(); | 167 | cpu_relax(); |
167 | mb(); /* make sure all irqs are disabled before this */ | 168 | mb(); /* make sure all irqs are disabled before this */ |
169 | hw_breakpoint_disable(); | ||
168 | /* | 170 | /* |
169 | * Now every CPU has IRQs off, we can clear out any pending | 171 | * Now every CPU has IRQs off, we can clear out any pending |
170 | * IPIs and be sure that no more will come in after this. | 172 | * IPIs and be sure that no more will come in after this. |
@@ -180,6 +182,7 @@ static void kexec_prepare_cpus_wait(int wait_state) | |||
180 | { | 182 | { |
181 | int my_cpu, i, notified=-1; | 183 | int my_cpu, i, notified=-1; |
182 | 184 | ||
185 | hw_breakpoint_disable(); | ||
183 | my_cpu = get_cpu(); | 186 | my_cpu = get_cpu(); |
184 | /* Make sure each CPU has atleast made it to the state we need */ | 187 | /* Make sure each CPU has atleast made it to the state we need */ |
185 | for_each_online_cpu(i) { | 188 | for_each_online_cpu(i) { |