On Wed, 12 May 2021 14:29:26 +0000 (UTC)
Christophe Leroy <christophe.le...@csgroup.eu> wrote:

> Some architectures like powerpc require a non standard
> allocation of optinsn page, because module pages are
> too far from the kernel for direct branches.
> 
> Define weak alloc_optinsn_page() and free_optinsn_page(), that
> fall back on alloc_insn_page() and free_insn_page() when not
> overriden by the architecture.
> 

Looks good to me :)

Acked-by: Masami Hiramatsu <mhira...@kernel.org>

> Suggested-by: Masami Hiramatsu <mhira...@kernel.org>
> Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu>
> ---
>  kernel/kprobes.c | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/kprobes.c b/kernel/kprobes.c
> index 745f08fdd7a6..8c0a6fdef771 100644
> --- a/kernel/kprobes.c
> +++ b/kernel/kprobes.c
> @@ -321,11 +321,21 @@ int kprobe_cache_get_kallsym(struct kprobe_insn_cache 
> *c, unsigned int *symnum,
>  }
>  
>  #ifdef CONFIG_OPTPROBES
> +void __weak *alloc_optinsn_page(void)
> +{
> +     return alloc_insn_page();
> +}
> +
> +void __weak free_optinsn_page(void *page)
> +{
> +     free_insn_page(page);
> +}
> +
>  /* For optimized_kprobe buffer */
>  struct kprobe_insn_cache kprobe_optinsn_slots = {
>       .mutex = __MUTEX_INITIALIZER(kprobe_optinsn_slots.mutex),
> -     .alloc = alloc_insn_page,
> -     .free = free_insn_page,
> +     .alloc = alloc_optinsn_page,
> +     .free = free_optinsn_page,
>       .sym = KPROBE_OPTINSN_PAGE_SYM,
>       .pages = LIST_HEAD_INIT(kprobe_optinsn_slots.pages),
>       /* .insn_size is initialized later */
> -- 
> 2.25.0
> 


-- 
Masami Hiramatsu <mhira...@kernel.org>

Reply via email to