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: Abhishek Sagar <sagar.abhishek@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
committed by
Ingo Molnar
parent
ad90c0e3ce
commit
e077341024
@@ -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 {
|
|||||||
};
|
};
|
||||||
|
|
||||||
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);
|
||||||
|
Reference in New Issue
Block a user