Re: [PATCH v2 2/8] powerpc/module: Only try to generate the ftrace_caller() stub once

From: Torsten Duwe
Date: Tue Mar 01 2016 - 07:00:21 EST


On Mon, Feb 29, 2016 at 08:26:23PM +1100, Michael Ellerman wrote:
[...]
> diff --git a/arch/powerpc/kernel/module_32.c b/arch/powerpc/kernel/module_32.c
> index 2c01665eb410..dd095496d225 100644
> --- a/arch/powerpc/kernel/module_32.c
> +++ b/arch/powerpc/kernel/module_32.c
> @@ -294,11 +294,19 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
> return -ENOEXEC;
> }
> }
> +
> + return 0;
> +}
> +
> #ifdef CONFIG_DYNAMIC_FTRACE
> - module->arch.tramp =
> - do_plt_call(module->core_layout.base,
> - (unsigned long)ftrace_caller,
> - sechdrs, module);
> -#endif
> +int module_finalize_ftrace(struct module *module, const Elf_Shdr *sechdrs)
> +{
> + module->arch.tramp = do_plt_call(module->core_layout.base,
> + (unsigned long)ftrace_caller,
> + sechdrs, module);
> + if (!mod->arch.tramp)

That should probably read (!module->arch.tramp).

> + return -ENOENT;
> +
> return 0;
> }
> +#endif