On 06/01/2017, 07:44 AM, Josh Poimboeuf wrote:
...
> --- a/arch/x86/kernel/kprobes/opt.c
> +++ b/arch/x86/kernel/kprobes/opt.c
> @@ -28,6 +28,7 @@
>  #include <linux/kdebug.h>
>  #include <linux/kallsyms.h>
>  #include <linux/ftrace.h>
> +#include <linux/frame.h>
>  
>  #include <asm/text-patching.h>
>  #include <asm/cacheflush.h>
> @@ -94,6 +95,7 @@ static void synthesize_set_arg1(kprobe_opcode_t *addr, 
> unsigned long val)
>  }
>  
>  asm (
> +                     "optprobe_template_func:\n"

Why do you add another symbol here? What's wrong with
optprobe_template_entry?

>                       ".global optprobe_template_entry\n"
>                       "optprobe_template_entry:\n"
>  #ifdef CONFIG_X86_64
> @@ -131,7 +133,12 @@ asm (
>                       "       popf\n"
>  #endif
>                       ".global optprobe_template_end\n"
> -                     "optprobe_template_end:\n");
> +                     "optprobe_template_end:\n"
> +                     ".type optprobe_template_func, @function\n"
> +                     ".size optprobe_template_func, 
> .-optprobe_template_func\n");
> +
> +void optprobe_template_func(void);
> +STACK_FRAME_NON_STANDARD(optprobe_template_func);
>  
>  #define TMPL_MOVE_IDX \
>       ((long)&optprobe_template_val - (long)&optprobe_template_entry)

thanks,
-- 
js
suse labs

Reply via email to