On 11/11/26 12:58 PM, Bradley Morgan wrote:
On 11 November 2026 03:48:41 GMT, Ritesh Harjani <[email protected]>
wrote:
Bradley Morgan <[email protected]> writes:
Commit 7dfbfb87c243 ("powerpc/ftrace: Activate
HAVE_DYNAMIC_FTRACE_WITH_REGS on PPC32") made count_relocs()
undercount the PLT entries the loader
consumes: module_finalize_ftrace() now creates two trampolines
(mod->arch.tramp for ftrace_caller() and mod->arch.tramp_regs for
ftrace_regs_caller()), while count_relocs() reserves only one entry
for ftrace.
So the core .plt ends up one ppc_plt_entry (16 bytes) short. The
walk in do_plt_call() scans for a free slot with
"while (entry->jump[0])" and has no bound check, so once the last
reserved slot is used up, the walk steps past the end of the section
and patch_instruction() writes the 4-instruction trampoline into
whatever module memory follows the .plt.
Count the second entry, mirroring what module_64.c does for the same
pair of stubs.
Signed-off-by: Bradley Morgan <[email protected]>
---
arch/powerpc/kernel/module_32.c | 3 +++
1 file changed, 3 insertions(+)
Do we also need fixes and stable tag here?
Fixes: 7dfbfb87c243 ("powerpc/ftrace: Activate HAVE_DYNAMIC_FTRACE_WITH_REGS on
PPC32")
Cc: [email protected]
Hmm.. could the merger add that? If anyone merges.. :(
planned to be part of my fixes PR and will add it.
Thanks for the fix.
Maddy
-ritesh
--- Thanks!