};
 
 int kprobe_fault_handler(struct pt_regs *regs, unsigned long cause);
-void kretprobe_trampoline(void);
+void __kretprobe_trampoline(void);
 void trap_is_kprobe(unsigned long address, struct pt_regs *regs);
 #else
 #define trap_is_kprobe(address, regs)
 
 
 static void __used kretprobe_trampoline_holder(void)
 {
-       __asm__ __volatile__(".global kretprobe_trampoline\n"
-                            "kretprobe_trampoline:\n" "nop\n");
+       __asm__ __volatile__(".global __kretprobe_trampoline\n"
+                            "__kretprobe_trampoline:\n"
+                            "nop\n");
 }
 
 void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri,
        ri->fp = NULL;
 
        /* Replace the return addr with trampoline addr */
-       regs->blink = (unsigned long)&kretprobe_trampoline;
+       regs->blink = (unsigned long)&__kretprobe_trampoline;
 }
 
 static int __kprobes trampoline_probe_handler(struct kprobe *p,
 }
 
 static struct kprobe trampoline_p = {
-       .addr = (kprobe_opcode_t *) &kretprobe_trampoline,
+       .addr = (kprobe_opcode_t *) &__kretprobe_trampoline,
        .pre_handler = trampoline_probe_handler
 };
 
 
 int __kprobes arch_trampoline_kprobe(struct kprobe *p)
 {
-       if (p->addr == (kprobe_opcode_t *) &kretprobe_trampoline)
+       if (p->addr == (kprobe_opcode_t *) &__kretprobe_trampoline)
                return 1;
 
        return 0;
 
  * for kretprobe handlers which should normally be interested in r0 only
  * anyway.
  */
-void __naked __kprobes kretprobe_trampoline(void)
+void __naked __kprobes __kretprobe_trampoline(void)
 {
        __asm__ __volatile__ (
                "stmdb  sp!, {r0 - r11}         \n\t"
                : : : "memory");
 }
 
-/* Called from kretprobe_trampoline */
+/* Called from __kretprobe_trampoline */
 static __used __kprobes void *trampoline_handler(struct pt_regs *regs)
 {
        return (void *)kretprobe_trampoline_handler(regs, (void *)regs->ARM_fp);
        ri->fp = (void *)regs->ARM_fp;
 
        /* Replace the return addr with trampoline addr. */
-       regs->ARM_lr = (unsigned long)&kretprobe_trampoline;
+       regs->ARM_lr = (unsigned long)&__kretprobe_trampoline;
 }
 
 int __kprobes arch_trampoline_kprobe(struct kprobe *p)
 
 int kprobe_fault_handler(struct pt_regs *regs, unsigned int fsr);
 int kprobe_exceptions_notify(struct notifier_block *self,
                             unsigned long val, void *data);
-void kretprobe_trampoline(void);
+void __kretprobe_trampoline(void);
 void __kprobes *trampoline_probe_handler(struct pt_regs *regs);
 
 #endif /* CONFIG_KPROBES */
 
        ri->fp = (void *)kernel_stack_pointer(regs);
 
        /* replace return addr (x30) with trampoline */
-       regs->regs[30] = (long)&kretprobe_trampoline;
+       regs->regs[30] = (long)&__kretprobe_trampoline;
 }
 
 int __kprobes arch_trampoline_kprobe(struct kprobe *p)
 
        ldp x28, x29, [sp, #S_X28]
        .endm
 
-SYM_CODE_START(kretprobe_trampoline)
+SYM_CODE_START(__kretprobe_trampoline)
        sub sp, sp, #PT_REGS_SIZE
 
        save_all_base_regs
        add sp, sp, #PT_REGS_SIZE
        ret
 
-SYM_CODE_END(kretprobe_trampoline)
+SYM_CODE_END(__kretprobe_trampoline)
 
 int kprobe_fault_handler(struct pt_regs *regs, unsigned int trapnr);
 int kprobe_breakpoint_handler(struct pt_regs *regs);
 int kprobe_single_step_handler(struct pt_regs *regs);
-void kretprobe_trampoline(void);
+void __kretprobe_trampoline(void);
 void __kprobes *trampoline_probe_handler(struct pt_regs *regs);
 
 #endif /* CONFIG_KPROBES */
 
 {
        ri->ret_addr = (kprobe_opcode_t *)regs->lr;
        ri->fp = NULL;
-       regs->lr = (unsigned long) &kretprobe_trampoline;
+       regs->lr = (unsigned long) &__kretprobe_trampoline;
 }
 
 int __kprobes arch_trampoline_kprobe(struct kprobe *p)
 
 
 #include <abi/entry.h>
 
-ENTRY(kretprobe_trampoline)
+ENTRY(__kretprobe_trampoline)
        SAVE_REGS_FTRACE
 
        mov     a0, sp /* pt_regs */
 
        RESTORE_REGS_FTRACE
        rts
-ENDPROC(kretprobe_trampoline)
+ENDPROC(__kretprobe_trampoline)
 
        __this_cpu_write(current_kprobe, p);
 }
 
-void kretprobe_trampoline(void)
+void __kretprobe_trampoline(void)
 {
 }
 
        ri->fp = NULL;
 
        /* Replace the return addr with trampoline addr */
-       regs->b0 = (unsigned long)dereference_function_descriptor(kretprobe_trampoline);
+       regs->b0 = (unsigned long)dereference_function_descriptor(__kretprobe_trampoline);
 }
 
 /* Check the instruction in the slot is break */
 int __init arch_init_kprobes(void)
 {
        trampoline_p.addr =
-               dereference_function_descriptor(kretprobe_trampoline);
+               dereference_function_descriptor(__kretprobe_trampoline);
        return register_kprobe(&trampoline_p);
 }
 
 int __kprobes arch_trampoline_kprobe(struct kprobe *p)
 {
        if (p->addr ==
-               dereference_function_descriptor(kretprobe_trampoline))
+               dereference_function_descriptor(__kretprobe_trampoline))
                return 1;
 
        return 0;
 
                /* Keep the assembler from reordering and placing JR here. */
                ".set noreorder\n\t"
                "nop\n\t"
-               ".global kretprobe_trampoline\n"
-               "kretprobe_trampoline:\n\t"
+               ".global __kretprobe_trampoline\n"
+               "__kretprobe_trampoline:\n\t"
                "nop\n\t"
                ".set pop"
                : : : "memory");
 }
 
-void kretprobe_trampoline(void);
+void __kretprobe_trampoline(void);
 
 void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri,
                                      struct pt_regs *regs)
        ri->fp = NULL;
 
        /* Replace the return addr with trampoline addr */
-       regs->regs[31] = (unsigned long)kretprobe_trampoline;
+       regs->regs[31] = (unsigned long)__kretprobe_trampoline;
 }
 
 /*
 
 int __kprobes arch_trampoline_kprobe(struct kprobe *p)
 {
-       if (p->addr == (kprobe_opcode_t *)kretprobe_trampoline)
+       if (p->addr == (kprobe_opcode_t *)__kretprobe_trampoline)
                return 1;
 
        return 0;
 }
 
 static struct kprobe trampoline_p = {
-       .addr = (kprobe_opcode_t *)kretprobe_trampoline,
+       .addr = (kprobe_opcode_t *)__kretprobe_trampoline,
        .pre_handler = trampoline_probe_handler
 };
 
 
        return 1;
 }
 
-void kretprobe_trampoline(void)
+void __kretprobe_trampoline(void)
 {
        asm volatile("nop");
        asm volatile("nop");
 int __init arch_init_kprobes(void)
 {
        trampoline_p.addr = (kprobe_opcode_t *)
-               dereference_function_descriptor(kretprobe_trampoline);
+               dereference_function_descriptor(__kretprobe_trampoline);
        return register_kprobe(&trampoline_p);
 }
 
 #define flush_insn_slot(p)     do { } while (0)
 #define kretprobe_blacklist_size 0
 
-void kretprobe_trampoline(void);
+void __kretprobe_trampoline(void);
 extern void arch_remove_kprobe(struct kprobe *p);
 
 /* Architecture specific copy of original instruction */
 
        ri->fp = NULL;
 
        /* Replace the return addr with trampoline addr */
-       regs->link = (unsigned long)kretprobe_trampoline;
+       regs->link = (unsigned long)__kretprobe_trampoline;
 }
 NOKPROBE_SYMBOL(arch_prepare_kretprobe);
 
  *     - When the probed function returns, this probe
  *             causes the handlers to fire
  */
-asm(".global kretprobe_trampoline\n"
-       ".type kretprobe_trampoline, @function\n"
-       "kretprobe_trampoline:\n"
+asm(".global __kretprobe_trampoline\n"
+       ".type __kretprobe_trampoline, @function\n"
+       "__kretprobe_trampoline:\n"
        "nop\n"
        "blr\n"
-       ".size kretprobe_trampoline, .-kretprobe_trampoline\n");
+       ".size __kretprobe_trampoline, .-__kretprobe_trampoline\n");
 
 /*
  * Called when the probe at kretprobe trampoline is hit
         * as it is used to determine the return address from the trap.
         * For (2), since nip is not honoured with optprobes, we instead setup
         * the link register properly so that the subsequent 'blr' in
-        * kretprobe_trampoline jumps back to the right instruction.
+        * __kretprobe_trampoline jumps back to the right instruction.
         *
         * For nip, we should set the address to the previous instruction since
         * we end up emulating it in kprobe_handler(), which increments the nip
 NOKPROBE_SYMBOL(kprobe_fault_handler);
 
 static struct kprobe trampoline_p = {
-       .addr = (kprobe_opcode_t *) &kretprobe_trampoline,
+       .addr = (kprobe_opcode_t *) &__kretprobe_trampoline,
        .pre_handler = trampoline_probe_handler
 };
 
 
 int arch_trampoline_kprobe(struct kprobe *p)
 {
-       if (p->addr == (kprobe_opcode_t *)&kretprobe_trampoline)
+       if (p->addr == (kprobe_opcode_t *)&__kretprobe_trampoline)
                return 1;
 
        return 0;
 
         * has a 'nop' instruction, which can be emulated.
         * So further checks can be skipped.
         */
-       if (p->addr == (kprobe_opcode_t *)&kretprobe_trampoline)
+       if (p->addr == (kprobe_opcode_t *)&__kretprobe_trampoline)
                return addr + sizeof(kprobe_opcode_t);
 
        /*
 
                 * Mark stacktraces with kretprobed functions on them
                 * as unreliable.
                 */
-               if (ip == (unsigned long)kretprobe_trampoline)
+               if (ip == (unsigned long)__kretprobe_trampoline)
                        return -EINVAL;
 #endif
 
 
 int kprobe_fault_handler(struct pt_regs *regs, unsigned int trapnr);
 bool kprobe_breakpoint_handler(struct pt_regs *regs);
 bool kprobe_single_step_handler(struct pt_regs *regs);
-void kretprobe_trampoline(void);
+void __kretprobe_trampoline(void);
 void __kprobes *trampoline_probe_handler(struct pt_regs *regs);
 
 #endif /* CONFIG_KPROBES */
 
 {
        ri->ret_addr = (kprobe_opcode_t *)regs->ra;
        ri->fp = NULL;
-       regs->ra = (unsigned long) &kretprobe_trampoline;
+       regs->ra = (unsigned long) &__kretprobe_trampoline;
 }
 
 int __kprobes arch_trampoline_kprobe(struct kprobe *p)
 
        REG_L x31, PT_T6(sp)
        .endm
 
-ENTRY(kretprobe_trampoline)
+ENTRY(__kretprobe_trampoline)
        addi sp, sp, -(PT_SIZE_ON_STACK)
        save_all_base_regs
 
        addi sp, sp, PT_SIZE_ON_STACK
 
        ret
-ENDPROC(kretprobe_trampoline)
+ENDPROC(__kretprobe_trampoline)
 
 };
 
 void arch_remove_kprobe(struct kprobe *p);
-void kretprobe_trampoline(void);
+void __kretprobe_trampoline(void);
 
 int kprobe_fault_handler(struct pt_regs *regs, int trapnr);
 int kprobe_exceptions_notify(struct notifier_block *self,
 
        ri->fp = NULL;
 
        /* Replace the return addr with trampoline addr */
-       regs->gprs[14] = (unsigned long) &kretprobe_trampoline;
+       regs->gprs[14] = (unsigned long) &__kretprobe_trampoline;
 }
 NOKPROBE_SYMBOL(arch_prepare_kretprobe);
 
  */
 static void __used kretprobe_trampoline_holder(void)
 {
-       asm volatile(".global kretprobe_trampoline\n"
-                    "kretprobe_trampoline: bcr 0,0\n");
+       asm volatile(".global __kretprobe_trampoline\n"
+                    "__kretprobe_trampoline: bcr 0,0\n");
 }
 
 /*
 NOKPROBE_SYMBOL(kprobe_exceptions_notify);
 
 static struct kprobe trampoline = {
-       .addr = (kprobe_opcode_t *) &kretprobe_trampoline,
+       .addr = (kprobe_opcode_t *) &__kretprobe_trampoline,
        .pre_handler = trampoline_probe_handler
 };
 
 
 int arch_trampoline_kprobe(struct kprobe *p)
 {
-       return p->addr == (kprobe_opcode_t *) &kretprobe_trampoline;
+       return p->addr == (kprobe_opcode_t *) &__kretprobe_trampoline;
 }
 NOKPROBE_SYMBOL(arch_trampoline_kprobe);
 
                 * Mark stacktraces with kretprobed functions on them
                 * as unreliable.
                 */
-               if (state.ip == (unsigned long)kretprobe_trampoline)
+               if (state.ip == (unsigned long)__kretprobe_trampoline)
                        return -EINVAL;
 #endif
 
 
 struct kprobe;
 
 void arch_remove_kprobe(struct kprobe *);
-void kretprobe_trampoline(void);
+void __kretprobe_trampoline(void);
 
 /* Architecture specific copy of original instruction*/
 struct arch_specific_insn {
 
        ri->fp = NULL;
 
        /* Replace the return addr with trampoline addr */
-       regs->pr = (unsigned long)kretprobe_trampoline;
+       regs->pr = (unsigned long)__kretprobe_trampoline;
 }
 
 static int __kprobes kprobe_handler(struct pt_regs *regs)
  */
 static void __used kretprobe_trampoline_holder(void)
 {
-       asm volatile (".globl kretprobe_trampoline\n"
-                     "kretprobe_trampoline:\n\t"
+       asm volatile (".globl __kretprobe_trampoline\n"
+                     "__kretprobe_trampoline:\n\t"
                      "nop\n");
 }
 
 /*
- * Called when we hit the probe point at kretprobe_trampoline
+ * Called when we hit the probe point at __kretprobe_trampoline
  */
 int __kprobes trampoline_probe_handler(struct kprobe *p, struct pt_regs *regs)
 {
 }
 
 static struct kprobe trampoline_p = {
-       .addr = (kprobe_opcode_t *)&kretprobe_trampoline,
+       .addr = (kprobe_opcode_t *)&__kretprobe_trampoline,
        .pre_handler = trampoline_probe_handler
 };
 
 
        flushi(&(p)->ainsn.insn[1]);    \
 } while (0)
 
-void kretprobe_trampoline(void);
+void __kretprobe_trampoline(void);
 
 /* Architecture specific copy of original instruction*/
 struct arch_specific_insn {
 
 
        /* Replace the return addr with trampoline addr */
        regs->u_regs[UREG_RETPC] =
-               ((unsigned long)kretprobe_trampoline) - 8;
+               ((unsigned long)__kretprobe_trampoline) - 8;
 }
 
 /*
 
 static void __used kretprobe_trampoline_holder(void)
 {
-       asm volatile(".global kretprobe_trampoline\n"
-                    "kretprobe_trampoline:\n"
+       asm volatile(".global __kretprobe_trampoline\n"
+                    "__kretprobe_trampoline:\n"
                     "\tnop\n"
                     "\tnop\n");
 }
 static struct kprobe trampoline_p = {
-       .addr = (kprobe_opcode_t *) &kretprobe_trampoline,
+       .addr = (kprobe_opcode_t *) &__kretprobe_trampoline,
        .pre_handler = trampoline_probe_handler
 };
 
 
 int __kprobes arch_trampoline_kprobe(struct kprobe *p)
 {
-       if (p->addr == (kprobe_opcode_t *)&kretprobe_trampoline)
+       if (p->addr == (kprobe_opcode_t *)&__kretprobe_trampoline)
                return 1;
 
        return 0;
 
        ri->fp = sara;
 
        /* Replace the return addr with trampoline addr */
-       *sara = (unsigned long) &kretprobe_trampoline;
+       *sara = (unsigned long) &__kretprobe_trampoline;
 }
 NOKPROBE_SYMBOL(arch_prepare_kretprobe);
 
  */
 asm(
        ".text\n"
-       ".global kretprobe_trampoline\n"
-       ".type kretprobe_trampoline, @function\n"
-       "kretprobe_trampoline:\n"
+       ".global __kretprobe_trampoline\n"
+       ".type __kretprobe_trampoline, @function\n"
+       "__kretprobe_trampoline:\n"
        /* We don't bother saving the ss register */
 #ifdef CONFIG_X86_64
        "       pushq %rsp\n"
        "       popfl\n"
 #endif
        "       ret\n"
-       ".size kretprobe_trampoline, .-kretprobe_trampoline\n"
+       ".size __kretprobe_trampoline, .-__kretprobe_trampoline\n"
 );
-NOKPROBE_SYMBOL(kretprobe_trampoline);
-STACK_FRAME_NON_STANDARD(kretprobe_trampoline);
+NOKPROBE_SYMBOL(__kretprobe_trampoline);
+STACK_FRAME_NON_STANDARD(__kretprobe_trampoline);
 
 
 /*
- * Called from kretprobe_trampoline
+ * Called from __kretprobe_trampoline
  */
 __used __visible void *trampoline_handler(struct pt_regs *regs)
 {
 #ifdef CONFIG_X86_32
        regs->gs = 0;
 #endif
-       regs->ip = (unsigned long)&kretprobe_trampoline;
+       regs->ip = (unsigned long)&__kretprobe_trampoline;
        regs->orig_ax = ~0UL;
 
        return (void *)kretprobe_trampoline_handler(regs, ®s->sp);
 
                                   struct pt_regs *regs);
 extern int arch_trampoline_kprobe(struct kprobe *p);
 
-void kretprobe_trampoline(void);
+void __kretprobe_trampoline(void);
 /*
  * Since some architecture uses structured function pointer,
  * use dereference_function_descriptor() to get real function address.
  */
 static nokprobe_inline void *kretprobe_trampoline_addr(void)
 {
-       return dereference_kernel_function_descriptor(kretprobe_trampoline);
+       return dereference_kernel_function_descriptor(__kretprobe_trampoline);
 }
 
 /* If the trampoline handler called from a kprobe, use this version */
 
 #ifdef CONFIG_KRETPROBES
 static inline const char *kretprobed(const char *name)
 {
-       static const char tramp_name[] = "kretprobe_trampoline";
+       static const char tramp_name[] = "__kretprobe_trampoline";
        int size = sizeof(tramp_name);
 
        if (strncmp(tramp_name, name, size) == 0)