xtensa: drop ARCH_WANT_FRAME_POINTERS
authorMax Filippov <jcmvbkbc@gmail.com>
Wed, 11 Jan 2023 22:35:38 +0000 (14:35 -0800)
committerMax Filippov <jcmvbkbc@gmail.com>
Tue, 13 Jun 2023 02:48:57 +0000 (19:48 -0700)
ARCH_WANT_FRAME_POINTERS was enabled in the xtensa Kconfig in the commit
8f371c752154 ("xtensa: enable lockdep support"), but neither windowed
nor call0 xtensa ABI need frame pointers for stack tracing.
Drop ARCH_WANT_FRAME_POINTERS from the xtensa Kconfig.
Drop ftrace_return_address0 definition as the generic implementation is
correct.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
arch/xtensa/Kconfig
arch/xtensa/include/asm/ftrace.h
arch/xtensa/kernel/stacktrace.c

index 46051edc5ed3896df217014dfdafbf2c45c8e037..45f72c8fa91169061a88cfbe4253935a12f782a4 100644 (file)
@@ -16,7 +16,6 @@ config XTENSA
        select ARCH_USE_MEMTEST
        select ARCH_USE_QUEUED_RWLOCKS
        select ARCH_USE_QUEUED_SPINLOCKS
-       select ARCH_WANT_FRAME_POINTERS
        select ARCH_WANT_IPC_PARSE_VERSION
        select BUILDTIME_TABLE_SORT
        select CLONE_BACKWARDS
index 6c6d9a9f185f8803ca534543a526422b03234ebc..0ea4f84cd5581fabd4e5abc93e6c7e177ee8c879 100644 (file)
 #include <asm/processor.h>
 
 #ifndef __ASSEMBLY__
-#define ftrace_return_address0 ({ unsigned long a0, a1; \
-               __asm__ __volatile__ ( \
-                       "mov %0, a0\n" \
-                       "mov %1, a1\n" \
-                       : "=r"(a0), "=r"(a1)); \
-               MAKE_PC_FROM_RA(a0, a1); })
-
-#ifdef CONFIG_FRAME_POINTER
 extern unsigned long return_address(unsigned level);
 #define ftrace_return_address(n) return_address(n)
-#endif
 #endif /* __ASSEMBLY__ */
 
 #ifdef CONFIG_FUNCTION_TRACER
index 7f7755cd28f077773c46be1e6b95d631f6f32cbf..f643ea5e36dab50fd21fad55706118785247837a 100644 (file)
@@ -237,8 +237,6 @@ EXPORT_SYMBOL_GPL(save_stack_trace);
 
 #endif
 
-#ifdef CONFIG_FRAME_POINTER
-
 struct return_addr_data {
        unsigned long addr;
        unsigned skip;
@@ -271,5 +269,3 @@ unsigned long return_address(unsigned level)
        return r.addr;
 }
 EXPORT_SYMBOL(return_address);
-
-#endif