提交 e0773410 编写于 作者: A Abhishek Sagar 提交者: Ingo Molnar

ftrace: export kretprobe_trampoline for function tracer

Follow suit from kprobe implementations on other archs and make kretprobe_trampoline non-static. Ftrace implmentation (more specifically, kernel/trace/trace.c) requires access to it (see-> http://kerneltrap.org/mailarchive/linux-kernel/2008/5/27/1955234).
Signed-off-by: NAbhishek Sagar <sagar.abhishek@gmail.com>
Signed-off-by: NIngo Molnar <mingo@elte.hu>
上级 ad90c0e3
...@@ -274,7 +274,7 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self, ...@@ -274,7 +274,7 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self,
* for kretprobe handlers which should normally be interested in r0 only * for kretprobe handlers which should normally be interested in r0 only
* anyway. * anyway.
*/ */
static void __attribute__((naked)) __kprobes kretprobe_trampoline(void) void __naked __kprobes kretprobe_trampoline(void)
{ {
__asm__ __volatile__ ( __asm__ __volatile__ (
"stmdb sp!, {r0 - r11} \n\t" "stmdb sp!, {r0 - r11} \n\t"
......
...@@ -59,6 +59,7 @@ struct kprobe_ctlblk { ...@@ -59,6 +59,7 @@ struct kprobe_ctlblk {
}; };
void arch_remove_kprobe(struct kprobe *); void arch_remove_kprobe(struct kprobe *);
void kretprobe_trampoline(void);
int kprobe_trap_handler(struct pt_regs *regs, unsigned int instr); int kprobe_trap_handler(struct pt_regs *regs, unsigned int instr);
int kprobe_fault_handler(struct pt_regs *regs, unsigned int fsr); int kprobe_fault_handler(struct pt_regs *regs, unsigned int fsr);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册