aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorFernando Luis [** ISO-8859-1 charset **] VázquezCao <fernando@oss.ntt.co.jp>2007-05-02 13:27:18 -0400
committerAndi Kleen <andi@basil.nowhere.org>2007-05-02 13:27:18 -0400
commitf5efb41e793ce587836b89b7191083b9a6185ed5 (patch)
tree073c0d6b8bd2feb5b287d88211a772f186951266 /arch
parent9062d888aa448318e38792b6879a795dd10adda4 (diff)
[PATCH] i386: Use safe_apic_wait_icr_idle in safe_apic_wait_icr_idle - i386
Use safe_apic_wait_icr_idle to check ICR idle bit if the vector is NMI_VECTOR to avoid potential hangups in the event of crash when kdump tries to stop the other CPUs. Signed-off-by: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp> Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/i386/kernel/smp.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/i386/kernel/smp.c b/arch/i386/kernel/smp.c
index d14ffe2109b8..f8667109db1c 100644
--- a/arch/i386/kernel/smp.c
+++ b/arch/i386/kernel/smp.c
@@ -175,7 +175,10 @@ static inline void __send_IPI_dest_field(unsigned long mask, int vector)
175 /* 175 /*
176 * Wait for idle. 176 * Wait for idle.
177 */ 177 */
178 apic_wait_icr_idle(); 178 if (unlikely(vector == NMI_VECTOR))
179 safe_apic_wait_icr_idle();
180 else
181 apic_wait_icr_idle();
179 182
180 /* 183 /*
181 * prepare target chip field 184 * prepare target chip field