diff options
author | Masami Hiramatsu <mhiramat@redhat.com> | 2009-09-08 12:47:55 -0400 |
---|---|---|
committer | Frederic Weisbecker <fweisbec@gmail.com> | 2009-09-10 21:59:35 -0400 |
commit | a00e817f42663941ea0aa5f85a9d1c4f8b212839 (patch) | |
tree | 40d2f5e86bf58e4250066fa8cb606a8157e9019b /kernel/kprobes.c | |
parent | f12b4f546b4e327d5620a544a2bddab68de66027 (diff) |
kprobes/x86-32: Move irq-exit functions to kprobes section
Move irq-exit functions to .kprobes.text section to protect against
kprobes recursion.
When I ran kprobe stress test on x86-32, I found below symbols
cause unrecoverable recursive probing:
ret_from_exception
ret_from_intr
check_userspace
restore_all
restore_all_notrace
restore_nocheck
irq_return
And also, I found some interrupt/exception entry points that
cause similar problems.
This patch moves those symbols (including their container functions)
to .kprobes.text section to prevent any kprobes probing.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: Jim Keniston <jkenisto@us.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
LKML-Reference: <20090908164755.24050.81182.stgit@dhcp-100-2-132.bos.redhat.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Diffstat (limited to 'kernel/kprobes.c')
-rw-r--r-- | kernel/kprobes.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 3267d90bc9d6..00d01b0f9fee 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c | |||
@@ -91,6 +91,8 @@ static spinlock_t *kretprobe_table_lock_ptr(unsigned long hash) | |||
91 | static struct kprobe_blackpoint kprobe_blacklist[] = { | 91 | static struct kprobe_blackpoint kprobe_blacklist[] = { |
92 | {"preempt_schedule",}, | 92 | {"preempt_schedule",}, |
93 | {"native_get_debugreg",}, | 93 | {"native_get_debugreg",}, |
94 | {"irq_entries_start",}, | ||
95 | {"common_interrupt",}, | ||
94 | {NULL} /* Terminator */ | 96 | {NULL} /* Terminator */ |
95 | }; | 97 | }; |
96 | 98 | ||