Commit d759be28 authored by Vasily Gorbik's avatar Vasily Gorbik

s390/ftrace: Use kernel ftrace trampoline for modules

Now that both the kernel modules area and the kernel image itself are
located within 4 GB, there is no longer a need to maintain a separate
ftrace_plt trampoline. Use the existing trampoline in the kernel.
Reviewed-by: default avatarIlya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent 017f1f0d
...@@ -50,10 +50,6 @@ struct ftrace_insn { ...@@ -50,10 +50,6 @@ struct ftrace_insn {
s32 disp; s32 disp;
} __packed; } __packed;
#ifdef CONFIG_MODULES
static char *ftrace_plt;
#endif /* CONFIG_MODULES */
static const char *ftrace_shared_hotpatch_trampoline(const char **end) static const char *ftrace_shared_hotpatch_trampoline(const char **end)
{ {
const char *tstart, *tend; const char *tstart, *tend;
...@@ -99,7 +95,6 @@ int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec) ...@@ -99,7 +95,6 @@ int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec)
if (mod) { if (mod) {
next_trampoline = &mod->arch.next_trampoline; next_trampoline = &mod->arch.next_trampoline;
trampolines_end = mod->arch.trampolines_end; trampolines_end = mod->arch.trampolines_end;
shared = ftrace_plt;
} }
#endif #endif
...@@ -215,25 +210,6 @@ void ftrace_arch_code_modify_post_process(void) ...@@ -215,25 +210,6 @@ void ftrace_arch_code_modify_post_process(void)
text_poke_sync_lock(); text_poke_sync_lock();
} }
#ifdef CONFIG_MODULES
static int __init ftrace_plt_init(void)
{
const char *start, *end;
ftrace_plt = execmem_alloc(EXECMEM_FTRACE, PAGE_SIZE);
if (!ftrace_plt)
panic("cannot allocate ftrace plt\n");
start = ftrace_shared_hotpatch_trampoline(&end);
memcpy(ftrace_plt, start, end - start);
set_memory_rox((unsigned long)ftrace_plt, 1);
return 0;
}
device_initcall(ftrace_plt_init);
#endif /* CONFIG_MODULES */
#ifdef CONFIG_FUNCTION_GRAPH_TRACER #ifdef CONFIG_FUNCTION_GRAPH_TRACER
/* /*
* Hook the return address and push it in the stack of return addresses * Hook the return address and push it in the stack of return addresses
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment