Messages in this thread Patch in this message | | | From | Ard Biesheuvel <> | Date | Thu, 24 Mar 2022 14:34:46 +0100 | Subject | Re: [PATCH] ARM: kprobes: Make __kretprobe_trampoline as a pure asm function |
| |
--- a/arch/arm/probes/kprobes/core.c +++ b/arch/arm/probes/kprobes/core.c @@ -377,7 +377,7 @@ void __naked __kprobes __kretprobe_trampoline(void) { __asm__ __volatile__ ( #ifdef CONFIG_FRAME_POINTER - "ldr lr, =__kretprobe_trampoline \n\t" + "ldr lr, .L__kretprobe_trampoline \n\t" /* __kretprobe_trampoline makes a framepointer on pt_regs. */ #ifdef CONFIG_CC_IS_CLANG "stmdb sp, {sp, lr, pc} \n\t" @@ -407,6 +407,11 @@ void __naked __kprobes __kretprobe_trampoline(void) "bx lr \n\t" #else "mov pc, lr \n\t" +#endif +#ifdef CONFIG_FRAME_POINTER + ".align 2 \n\t" + ".L__kretprobe_trampoline: \n\t" + ".long __kretprobe_trampoline \n\t" #endif : : : "memory"); }
On Thu, 24 Mar 2022 at 14:23, Masami Hiramatsu <mhiramat@kernel.org> wrote: > > On Thu, 24 Mar 2022 15:21:08 +0900 > Masami Hiramatsu <mhiramat@kernel.org> wrote: > > > Hi, > > > > I found a better solution for this issue from Ard :-) > > > > https://lore.kernel.org/all/20220203082204.1176734-6-ardb@kernel.org/T/#u > > > > I should use mov_l instead of ldr for loading the symbol address. > > Hm, these macros are only for the pure assembly file (.S), so we have to > split this in a asm file to use that. >
What about the below?
| |