[PATCH] ftrace: don't call kaslr_offset()

From: Arnd Bergmann
Date: Tue Feb 25 2025 - 04:10:01 EST


From: Arnd Bergmann <arnd@xxxxxxxx>

The kaslr_offset() function is only defined on architectures
that implement CONFIG_RANDOMIZE_BASE, which leads to a
build failure on 32-bit arm and likely others.

Hide the function call behind an #ifdef.

Fixes: ef378c3b8233 ("scripts/sorttable: Zero out weak functions in mcount_loc table")
Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
---
There is probably a nicer way to do this, this version was the
minimum fix I found to unbreak the build.
---
kernel/trace/ftrace.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index ac55b97aa540..f41245716e0b 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -7018,7 +7018,7 @@ static int ftrace_process_locs(struct module *mod,
unsigned long count;
unsigned long *p;
unsigned long addr;
- unsigned long kaslr;
+ unsigned long kaslr = 0;
unsigned long flags = 0; /* Shut up gcc */
unsigned long pages;
int ret = -ENOMEM;
@@ -7070,8 +7070,10 @@ static int ftrace_process_locs(struct module *mod,
ftrace_pages->next = start_pg;
}

+#ifdef CONFIG_RANDOMIZE_BASE
/* For zeroed locations that were shifted for core kernel */
kaslr = !mod ? kaslr_offset() : 0;
+#endif

p = start;
pg = start_pg;
--
2.39.5