mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 05:34:13 +08:00
powerpc/kprobes: Dereference function pointers only if the address does not belong to kernel text
This makes the changes introduced in commit83e840c770
("powerpc64/elfv1: Only dereference function descriptor for non-text symbols") to be specific to the kprobe subsystem. We previously changed ppc_function_entry() to always check the provided address to confirm if it needed to be dereferenced. This is actually only an issue for kprobe blacklisted asm labels (through use of _ASM_NOKPROBE_SYMBOL) and can cause other issues with ftrace. Also, the additional checks are not really necessary for our other uses. As such, move this check to the kprobes subsystem. Fixes:83e840c770
("powerpc64/elfv1: Only dereference function descriptor for non-text symbols") Cc: stable@vger.kernel.org # v4.13+ Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
63be1a81e4
commit
e6c4dcb308
@ -600,7 +600,12 @@ NOKPROBE_SYMBOL(kprobe_fault_handler);
|
|||||||
|
|
||||||
unsigned long arch_deref_entry_point(void *entry)
|
unsigned long arch_deref_entry_point(void *entry)
|
||||||
{
|
{
|
||||||
|
#ifdef PPC64_ELF_ABI_v1
|
||||||
|
if (!kernel_text_address((unsigned long)entry))
|
||||||
return ppc_global_function_entry(entry);
|
return ppc_global_function_entry(entry);
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
return (unsigned long)entry;
|
||||||
}
|
}
|
||||||
NOKPROBE_SYMBOL(arch_deref_entry_point);
|
NOKPROBE_SYMBOL(arch_deref_entry_point);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user