aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86_64
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2005-04-16 18:25:13 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-16 18:25:13 -0400
commitdaeeafecf029a05a304fa299706b3ecc90e16175 (patch)
tree7b17fd7408b47892e391604c6791674f03109e1c /include/asm-x86_64
parentece90303ec7e2e8d8610eb03ee7648755dd8efe7 (diff)
[PATCH] x86_64: Keep only a single debug notifier chain
Calling a notifier three times in the debug handler does not make much sense, because a debugger can figure out the various conditions by itself. Remove the additional calls to DIE_DEBUG and DIE_DEBUGSTEP completely. This matches what i386 does now. This also makes sure interrupts are always still disabled when calling a debugger, which prevents: BUG: using smp_processor_id() in preemptible [00000001] code: tpopf/1470 caller is post_kprobe_handler+0x9/0x70 Call Trace:<ffffffff8024f10f>{smp_processor_id+191} <ffffffff80120e69>{post_kpro be_handler+9} <ffffffff80120f7a>{kprobe_exceptions_notify+58} <ffffffff80144fc0>{notifier_call_chain+32} <ffffffff80110daf>{do_debug+335} <ffffffff8010f513>{debug+127} <EOE> on preemptible debug kernels with kprobes when single stepping in user space. This was probably a bug even on non preempt kernels, this function was supposed to be running with interrupts off according to a comment there. Note to third part debugger maintainers: please double check your debugger can still single step. Cc: <prasanna@in.ibm.com> Cc: <jbeulich@novell.com> Cc: <kaos@sgi.com> Cc: <jim.houston@ccur.com> Cc: <jfv@bluesong.net> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/asm-x86_64')
-rw-r--r--include/asm-x86_64/kdebug.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/include/asm-x86_64/kdebug.h b/include/asm-x86_64/kdebug.h
index adb6f918d3ad..6277f75cbb4b 100644
--- a/include/asm-x86_64/kdebug.h
+++ b/include/asm-x86_64/kdebug.h
@@ -23,7 +23,6 @@ enum die_val {
23 DIE_OOPS = 1, 23 DIE_OOPS = 1,
24 DIE_INT3, 24 DIE_INT3,
25 DIE_DEBUG, 25 DIE_DEBUG,
26 DIE_DEBUGSTEP,
27 DIE_PANIC, 26 DIE_PANIC,
28 DIE_NMI, 27 DIE_NMI,
29 DIE_DIE, 28 DIE_DIE,