arm64: ftrace: Simplify get_ftrace_plt
authorFlorent Revest <revest@chromium.org>
Wed, 5 Apr 2023 18:02:47 +0000 (20:02 +0200)
committerWill Deacon <will@kernel.org>
Tue, 11 Apr 2023 17:06:39 +0000 (18:06 +0100)
Following recent refactorings, the get_ftrace_plt function only ever
gets called with addr = FTRACE_ADDR so its code can be simplified to
always return the ftrace trampoline plt.

Signed-off-by: Florent Revest <revest@chromium.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20230405180250.2046566-3-revest@chromium.org
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/ftrace.c

index 758436727fbae5eee86ac9f28dffad58b1fd43a5..432626c866a87d2c49b61c8ee05d120f2b4a35fe 100644 (file)
@@ -195,15 +195,15 @@ int ftrace_update_ftrace_func(ftrace_func_t func)
        return ftrace_modify_code(pc, 0, new, false);
 }
 
-static struct plt_entry *get_ftrace_plt(struct module *mod, unsigned long addr)
+static struct plt_entry *get_ftrace_plt(struct module *mod)
 {
 #ifdef CONFIG_ARM64_MODULE_PLTS
        struct plt_entry *plt = mod->arch.ftrace_trampolines;
 
-       if (addr == FTRACE_ADDR)
-               return &plt[FTRACE_PLT_IDX];
-#endif
+       return &plt[FTRACE_PLT_IDX];
+#else
        return NULL;
+#endif
 }
 
 static bool reachable_by_bl(unsigned long addr, unsigned long pc)
@@ -270,7 +270,7 @@ static bool ftrace_find_callable_addr(struct dyn_ftrace *rec,
        if (WARN_ON(!mod))
                return false;
 
-       plt = get_ftrace_plt(mod, *addr);
+       plt = get_ftrace_plt(mod);
        if (!plt) {
                pr_err("ftrace: no module PLT for %ps\n", (void *)*addr);
                return false;