s390/ftrace: do not assume module_alloc() returns executable memory
The ftrace code assumes at two places that module_alloc() returns executable memory. While this is currently true, this will be changed with a subsequent patch to follow other architectures which implement ARCH_HAS_STRICT_MODULE_RWX. Acked-by: Alexander Gordeev <agordeev@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
parent
f9b2d96c4f
commit
7c7ab788c0
|
@ -226,7 +226,7 @@ static int __init ftrace_plt_init(void)
|
||||||
|
|
||||||
start = ftrace_shared_hotpatch_trampoline(&end);
|
start = ftrace_shared_hotpatch_trampoline(&end);
|
||||||
memcpy(ftrace_plt, start, end - start);
|
memcpy(ftrace_plt, start, end - start);
|
||||||
set_memory_ro((unsigned long)ftrace_plt, 1);
|
set_memory_rox((unsigned long)ftrace_plt, 1);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
device_initcall(ftrace_plt_init);
|
device_initcall(ftrace_plt_init);
|
||||||
|
|
|
@ -509,7 +509,7 @@ static int module_alloc_ftrace_hotpatch_trampolines(struct module *me,
|
||||||
start = module_alloc(numpages * PAGE_SIZE);
|
start = module_alloc(numpages * PAGE_SIZE);
|
||||||
if (!start)
|
if (!start)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
set_memory_ro((unsigned long)start, numpages);
|
set_memory_rox((unsigned long)start, numpages);
|
||||||
end = start + size;
|
end = start + size;
|
||||||
|
|
||||||
me->arch.trampolines_start = (struct ftrace_hotpatch_trampoline *)start;
|
me->arch.trampolines_start = (struct ftrace_hotpatch_trampoline *)start;
|
||||||
|
|
Loading…
Reference in New Issue