aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel
diff options
context:
space:
mode:
authorAndi Kleen <ak@linux.intel.com>2009-04-28 08:25:18 -0400
committerH. Peter Anvin <hpa@zytor.com>2009-05-28 12:24:13 -0400
commitd896a940ef4f12a0a6bc432853b249dcfbacabf0 (patch)
tree9e2eaea80b7a2a6fc426ad7f9dd9da844368c101 /arch/x86/kernel
parent8e97aef5f43ec715f394bc15015ff263b80c3ad6 (diff)
x86, mce: remove oops_begin() use in 64bit machine check
First 32bit doesn't have oops_begin, so it's a barrier of using this code on 32bit. On closer examination it turns out oops_begin is not a good idea in a machine check panic anyways. All oops_begin does it so check for recursive/parallel oopses and implement the "wait on oops" heuristic. But there's actually no good reason to lock machine checks against oopses or prevent them from recursion. Also "wait on oops" does not really make sense for a machine check too. Replace it with a manual bust_spinlocks/console_verbose. Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 7562c1f674f3..f4d6841d2bdf 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -178,7 +178,8 @@ static void mce_panic(char *msg, struct mce *backup, u64 start)
178{ 178{
179 int i; 179 int i;
180 180
181 oops_begin(); 181 bust_spinlocks(1);
182 console_verbose();
182 for (i = 0; i < MCE_LOG_LEN; i++) { 183 for (i = 0; i < MCE_LOG_LEN; i++) {
183 u64 tsc = mcelog.entry[i].tsc; 184 u64 tsc = mcelog.entry[i].tsc;
184 185