Messages in this thread | | | From | 平松雅巳 / HIRAMATU,MASAMI <> | Subject | RE: [PATCH v11 8/9] arm64: Add kernel return probes support (kretprobes) | Date | Thu, 17 Mar 2016 12:22:30 +0000 |
| |
Hi,
>From: Sandeepa Prabhu <sandeepa.s.prabhu@gmail.com> > >The pre-handler of this special 'trampoline' kprobe executes the return >probe handler functions and restores original return address in ELR_EL1. >This way the saved pt_regs still hold the original register context to be >carried back to the probed kernel function.
This patch seems not well separated.
>diff --git a/arch/arm64/kernel/kprobes.c b/arch/arm64/kernel/kprobes.c >index bd3f233..13d3333 100644 >--- a/arch/arm64/kernel/kprobes.c >+++ b/arch/arm64/kernel/kprobes.c
[snip]
>+void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri, >+ struct pt_regs *regs) >+{ >+ ri->ret_addr = (kprobe_opcode_t *)regs->regs[30]; >+ >+ /* replace return addr (x30) with trampoline */ >+ regs->regs[30] = (long)&kretprobe_trampoline;
So, where is the kretprobe_trampoline? It seems that function is defined in other patch.
>+} >+ >+int __kprobes arch_trampoline_kprobe(struct kprobe *p) >+{ >+ return 0; > }
And what this function is for??
Thank you,
> > int __init arch_init_kprobes(void) >-- >2.5.0 > > >_______________________________________________ >linux-arm-kernel mailing list >linux-arm-kernel@lists.infradead.org >http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
| |