diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2005-10-30 17:59:42 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-10-30 20:37:13 -0500 |
commit | 3d1675b41b02d64bd1185903ea0d25a8c0bb6dea (patch) | |
tree | 4a5c4e57a7929498e30e05cc2c81f20047a914b0 | |
parent | f2b36db692b7ff6972320ad9839ae656a3b0ee3e (diff) |
[PATCH] i386 kexec-on-panic: Don't shutdown the apics.
It is dangerous to shutdown the apics in machine_crash_shutdown.
With my previous patch to initialize apics in init_IRQ we should be able to
boot a kernel without this. As long as we reinitialize the APICs we don't
care what state they were in during bootup.
This should make machine_crash_shutdown noticeably more reliable.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/i386/kernel/crash.c | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/arch/i386/kernel/crash.c b/arch/i386/kernel/crash.c index 0248e084017c..af809ccf5fbe 100644 --- a/arch/i386/kernel/crash.c +++ b/arch/i386/kernel/crash.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <asm/hardirq.h> | 21 | #include <asm/hardirq.h> |
22 | #include <asm/nmi.h> | 22 | #include <asm/nmi.h> |
23 | #include <asm/hw_irq.h> | 23 | #include <asm/hw_irq.h> |
24 | #include <asm/apic.h> | ||
25 | #include <mach_ipi.h> | 24 | #include <mach_ipi.h> |
26 | 25 | ||
27 | 26 | ||
@@ -148,7 +147,6 @@ static int crash_nmi_callback(struct pt_regs *regs, int cpu) | |||
148 | regs = &fixed_regs; | 147 | regs = &fixed_regs; |
149 | } | 148 | } |
150 | crash_save_this_cpu(regs, cpu); | 149 | crash_save_this_cpu(regs, cpu); |
151 | disable_local_APIC(); | ||
152 | atomic_dec(&waiting_for_crash_ipi); | 150 | atomic_dec(&waiting_for_crash_ipi); |
153 | /* Assume hlt works */ | 151 | /* Assume hlt works */ |
154 | halt(); | 152 | halt(); |
@@ -188,7 +186,6 @@ static void nmi_shootdown_cpus(void) | |||
188 | } | 186 | } |
189 | 187 | ||
190 | /* Leave the nmi callback set */ | 188 | /* Leave the nmi callback set */ |
191 | disable_local_APIC(); | ||
192 | } | 189 | } |
193 | #else | 190 | #else |
194 | static void nmi_shootdown_cpus(void) | 191 | static void nmi_shootdown_cpus(void) |
@@ -213,9 +210,5 @@ void machine_crash_shutdown(struct pt_regs *regs) | |||
213 | /* Make a note of crashing cpu. Will be used in NMI callback.*/ | 210 | /* Make a note of crashing cpu. Will be used in NMI callback.*/ |
214 | crashing_cpu = smp_processor_id(); | 211 | crashing_cpu = smp_processor_id(); |
215 | nmi_shootdown_cpus(); | 212 | nmi_shootdown_cpus(); |
216 | lapic_shutdown(); | ||
217 | #if defined(CONFIG_X86_IO_APIC) | ||
218 | disable_IO_APIC(); | ||
219 | #endif | ||
220 | crash_save_self(regs); | 213 | crash_save_self(regs); |
221 | } | 214 | } |