浏览代码

[PATCH] wire up oops_enter()/oops_exit()

Implement pause_on_oops() on x86_64.

AK: I redid the patch to do the oops_enter/exit in the existing
oops_begin()/end(). This makes it much shorter.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Andrew Morton 19 年之前
父节点
当前提交
abf0f10948
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      arch/x86_64/kernel/traps.c

+ 3 - 0
arch/x86_64/kernel/traps.c

@@ -561,6 +561,8 @@ unsigned __kprobes long oops_begin(void)
 	int cpu = safe_smp_processor_id();
 	int cpu = safe_smp_processor_id();
 	unsigned long flags;
 	unsigned long flags;
 
 
+	oops_enter();
+
 	/* racy, but better than risking deadlock. */
 	/* racy, but better than risking deadlock. */
 	local_irq_save(flags);
 	local_irq_save(flags);
 	if (!spin_trylock(&die_lock)) { 
 	if (!spin_trylock(&die_lock)) { 
@@ -589,6 +591,7 @@ void __kprobes oops_end(unsigned long flags)
 		spin_unlock_irqrestore(&die_lock, flags);
 		spin_unlock_irqrestore(&die_lock, flags);
 	if (panic_on_oops)
 	if (panic_on_oops)
 		panic("Fatal exception");
 		panic("Fatal exception");
+	oops_exit();
 }
 }
 
 
 void __kprobes __die(const char * str, struct pt_regs * regs, long err)
 void __kprobes __die(const char * str, struct pt_regs * regs, long err)