summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNaveen N Rao <naveen@kernel.org>2023-06-19 15:17:19 +0530
committerMichael Ellerman <mpe@ellerman.id.au>2023-08-22 00:09:05 +1000
commitf6834c8c59a8e977a6f6e4f96c5d28dfa5db8430 (patch)
treea044c2e3675bdb6869a698f9b4ea4a23edfbe224
parent34daf445f82bd3a4df852bb5f1dffd792ac830a0 (diff)
downloadlinux-f6834c8c59a8e977a6f6e4f96c5d28dfa5db8430.tar.gz
linux-f6834c8c59a8e977a6f6e4f96c5d28dfa5db8430.tar.bz2
linux-f6834c8c59a8e977a6f6e4f96c5d28dfa5db8430.zip
powerpc/ftrace: Fix dropping weak symbols with older toolchains
The minimum level of gcc supported for building the kernel is v5.1. v5.x releases of gcc emitted a three instruction sequence for -mprofile-kernel: mflr r0 std r0, 16(r1) bl _mcount It is only with the v6.x releases that gcc started emitting the two instruction sequence for -mprofile-kernel, omitting the second store instruction. With the older three instruction sequence, the actual ftrace location can be the 5th instruction into a function. Update the allowed offset for ftrace location from 12 to 16 to accommodate the same. Cc: stable@vger.kernel.org Fixes: 7af82ff90a2b06 ("powerpc/ftrace: Ignore weak functions") Signed-off-by: Naveen N Rao <naveen@kernel.org> Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://msgid.link/7b265908a9461e38fc756ef9b569703860a80621.1687166935.git.naveen@kernel.org
-rw-r--r--arch/powerpc/include/asm/ftrace.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/include/asm/ftrace.h b/arch/powerpc/include/asm/ftrace.h
index 91c049d51d0e..2edc6269b1a3 100644
--- a/arch/powerpc/include/asm/ftrace.h
+++ b/arch/powerpc/include/asm/ftrace.h
@@ -12,7 +12,7 @@
/* Ignore unused weak functions which will have larger offsets */
#ifdef CONFIG_MPROFILE_KERNEL
-#define FTRACE_MCOUNT_MAX_OFFSET 12
+#define FTRACE_MCOUNT_MAX_OFFSET 16
#elif defined(CONFIG_PPC32)
#define FTRACE_MCOUNT_MAX_OFFSET 8
#endif