diff options
| author | Srikar Dronamraju <srikar@linux.vnet.ibm.com> | 2011-10-25 10:21:59 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2011-12-06 02:20:37 -0500 |
| commit | cc3a1bf52a9d2808c7cd6e8f413b02b650b6b84b (patch) | |
| tree | 59366ee428d280afa4e6384488d9407db3da72bd | |
| parent | 3596ff4e6b2aff8a28c69af389d5046090a53330 (diff) | |
x86: Clean up and extend do_int3()
Since there is a possibility of !KPROBES int3 listeners
(such as kgdb) and since DIE_TRAP is currently not being
used by anybody, notify all listeners with DIE_INT3.
Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/20111025142159.GB21225@linux.vnet.ibm.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
| -rw-r--r-- | arch/x86/kernel/traps.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index a8e3eb83466..fa1191fb679 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c | |||
| @@ -306,15 +306,10 @@ dotraplinkage void __kprobes do_int3(struct pt_regs *regs, long error_code) | |||
| 306 | == NOTIFY_STOP) | 306 | == NOTIFY_STOP) |
| 307 | return; | 307 | return; |
| 308 | #endif /* CONFIG_KGDB_LOW_LEVEL_TRAP */ | 308 | #endif /* CONFIG_KGDB_LOW_LEVEL_TRAP */ |
| 309 | #ifdef CONFIG_KPROBES | 309 | |
| 310 | if (notify_die(DIE_INT3, "int3", regs, error_code, 3, SIGTRAP) | 310 | if (notify_die(DIE_INT3, "int3", regs, error_code, 3, SIGTRAP) |
| 311 | == NOTIFY_STOP) | 311 | == NOTIFY_STOP) |
| 312 | return; | 312 | return; |
| 313 | #else | ||
| 314 | if (notify_die(DIE_TRAP, "int3", regs, error_code, 3, SIGTRAP) | ||
| 315 | == NOTIFY_STOP) | ||
| 316 | return; | ||
| 317 | #endif | ||
| 318 | 313 | ||
| 319 | preempt_conditional_sti(regs); | 314 | preempt_conditional_sti(regs); |
| 320 | do_trap(3, SIGTRAP, "int3", regs, error_code, NULL); | 315 | do_trap(3, SIGTRAP, "int3", regs, error_code, NULL); |
