FAILED: patch "[PATCH] powerpc/ftrace: Remove ftrace init tramp once kernel init is" failed to apply to 5.17-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.17-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 84ade0a6655bee803d176525ef457175cbf4df22 Mon Sep 17 00:00:00 2001
From: "Naveen N. Rao" <[email protected]>
Date: Mon, 16 May 2022 12:44:22 +0530
Subject: [PATCH] powerpc/ftrace: Remove ftrace init tramp once kernel init is
complete
Stop using the ftrace trampoline for init section once kernel init is complete.
Fixes 67361cf8071286 ("powerpc/ftrace: Handle large kernel configs")
Cc [email protected] # v4.20+
Signed-off-by Naveen N. Rao <[email protected]>
Signed-off-by Michael Ellerman <[email protected]>
arch/powerpc/include/asm/ftrace.h +3 -1
@@ -86,7 +86,7 @@ static inline bool arch_syscall_match_sym_name(const char *sym, const char *name#endif /* CONFIG_PPC64_ELF_ABI_V1 */ #endif /* CONFIG_FTRACE_SYSCALLS */ -#ifdef CONFIG_PPC64 +#if defined(CONFIG_PPC64 ) && defined(CONFIG_FUNCTION_TRACER )#include <asm/paca.h> static inline void this_cpu_disable_ftrace (void )
@@ -110,11 +110,13 @@ static inline u8 this_cpu_get_ftrace_enabled(void)return get_paca ()->ftrace_enabled; } +void ftrace_free_init_tramp (void );#else /* CONFIG_PPC64 */ static inline void this_cpu_disable_ftrace (void ) { }static inline void this_cpu_enable_ftrace (void ) { }static inline void this_cpu_set_ftrace_enabled (u8 ftrace_enabled) { }static inline u8 this_cpu_get_ftrace_enabled (void ) {return 1 ; } +static inline void ftrace_free_init_tramp (void ) { }#endif /* CONFIG_PPC64 */ #endif /* !__ASSEMBLY__ */
arch/powerpc/kernel/trace/ftrace.c +12 -3
@@ -257,9 +257,7 @@ static int setup_mcount_compiler_tramp(unsigned long tramp)/* Is this a known long jump tramp? */ for (i =0 ; i <NUM_FTRACE_TRAMPS ; i++) -if (!ftrace_tramps[i]) -break ; -else if (ftrace_tramps[i] == tramp) +if (ftrace_tramps[i] == tramp)return 0 ;/* New trampoline -- read where this goes */
@@ -710,6 +708,17 @@ void arch_ftrace_update_code(int command)extern unsigned int ftrace_tramp_text[], ftrace_tramp_init[]; +void ftrace_free_init_tramp (void ) +{ +int i; + +for (i =0 ; i <NUM_FTRACE_TRAMPS && ftrace_tramps[i]; i++) +if (ftrace_tramps[i] == (unsigned long )ftrace_tramp_init) { + ftrace_tramps[i] =0 ; +return ; + } +} +int __init ftrace_dyn_arch_init (void ) {int i;
arch/powerpc/mm/mem.c +2 -0
@@ -22,6 +22,7 @@#include <asm/kasan.h> #include <asm/svm.h> #include <asm/mmzone.h> +#include <asm/ftrace.h> #include <asm/code-patching.h> #include <mm/mmu_decl.h>
@@ -314,6 +315,7 @@ void free_initmem(void)mark_initmem_nx ();static_branch_enable (&init_mem_is_free);free_initmem_default (POISON_FREE_INITMEM ); +ftrace_free_init_tramp (); }/*