diff options
author | Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> | 2014-04-17 04:18:07 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-04-24 04:03:02 -0400 |
commit | 9c54b6164eeb292a0eac86c6913bd8daaff35e62 (patch) | |
tree | 51c8be805c9d0d2442c89a80de61bab3f58eff73 /arch/x86 | |
parent | fbc1963d2c1c4eb4651132a2c5c9d6111ada17d3 (diff) |
kprobes, x86: Allow kprobes on text_poke/hw_breakpoint
Allow kprobes on text_poke/hw_breakpoint because
those are not related to the critical int3-debug
recursive path of kprobes at this moment.
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Borislav Petkov <bp@suse.de>
Cc: Fengguang Wu <fengguang.wu@intel.com>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Link: http://lkml.kernel.org/r/20140417081807.26341.73219.stgit@ltc230.yrl.intra.hitachi.co.jp
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kernel/alternative.c | 3 | ||||
-rw-r--r-- | arch/x86/kernel/hw_breakpoint.c | 5 |
2 files changed, 3 insertions, 5 deletions
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index df94598ad05a..703130f469ec 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c | |||
@@ -5,7 +5,6 @@ | |||
5 | #include <linux/mutex.h> | 5 | #include <linux/mutex.h> |
6 | #include <linux/list.h> | 6 | #include <linux/list.h> |
7 | #include <linux/stringify.h> | 7 | #include <linux/stringify.h> |
8 | #include <linux/kprobes.h> | ||
9 | #include <linux/mm.h> | 8 | #include <linux/mm.h> |
10 | #include <linux/vmalloc.h> | 9 | #include <linux/vmalloc.h> |
11 | #include <linux/memory.h> | 10 | #include <linux/memory.h> |
@@ -551,7 +550,7 @@ void *__init_or_module text_poke_early(void *addr, const void *opcode, | |||
551 | * | 550 | * |
552 | * Note: Must be called under text_mutex. | 551 | * Note: Must be called under text_mutex. |
553 | */ | 552 | */ |
554 | void *__kprobes text_poke(void *addr, const void *opcode, size_t len) | 553 | void *text_poke(void *addr, const void *opcode, size_t len) |
555 | { | 554 | { |
556 | unsigned long flags; | 555 | unsigned long flags; |
557 | char *vaddr; | 556 | char *vaddr; |
diff --git a/arch/x86/kernel/hw_breakpoint.c b/arch/x86/kernel/hw_breakpoint.c index a67b47c31314..5f9cf20cdb68 100644 --- a/arch/x86/kernel/hw_breakpoint.c +++ b/arch/x86/kernel/hw_breakpoint.c | |||
@@ -32,7 +32,6 @@ | |||
32 | #include <linux/irqflags.h> | 32 | #include <linux/irqflags.h> |
33 | #include <linux/notifier.h> | 33 | #include <linux/notifier.h> |
34 | #include <linux/kallsyms.h> | 34 | #include <linux/kallsyms.h> |
35 | #include <linux/kprobes.h> | ||
36 | #include <linux/percpu.h> | 35 | #include <linux/percpu.h> |
37 | #include <linux/kdebug.h> | 36 | #include <linux/kdebug.h> |
38 | #include <linux/kernel.h> | 37 | #include <linux/kernel.h> |
@@ -424,7 +423,7 @@ EXPORT_SYMBOL_GPL(hw_breakpoint_restore); | |||
424 | * NOTIFY_STOP returned for all other cases | 423 | * NOTIFY_STOP returned for all other cases |
425 | * | 424 | * |
426 | */ | 425 | */ |
427 | static int __kprobes hw_breakpoint_handler(struct die_args *args) | 426 | static int hw_breakpoint_handler(struct die_args *args) |
428 | { | 427 | { |
429 | int i, cpu, rc = NOTIFY_STOP; | 428 | int i, cpu, rc = NOTIFY_STOP; |
430 | struct perf_event *bp; | 429 | struct perf_event *bp; |
@@ -511,7 +510,7 @@ static int __kprobes hw_breakpoint_handler(struct die_args *args) | |||
511 | /* | 510 | /* |
512 | * Handle debug exception notifications. | 511 | * Handle debug exception notifications. |
513 | */ | 512 | */ |
514 | int __kprobes hw_breakpoint_exceptions_notify( | 513 | int hw_breakpoint_exceptions_notify( |
515 | struct notifier_block *unused, unsigned long val, void *data) | 514 | struct notifier_block *unused, unsigned long val, void *data) |
516 | { | 515 | { |
517 | if (val != DIE_DEBUG) | 516 | if (val != DIE_DEBUG) |