This simplifies the code. unwind_user_next_fp() does not need to return -EINVAL if config option HAVE_UNWIND_USER_FP is disabled, as unwind_user_start() will then not select this unwind method and unwind_user_next() will therefore not call it.
Note that enabling the config option HAVE_UNWIND_USER_FP without defining ARCH_INIT_USER_FP_FRAME, ARCH_INIT_USER_FP_ENTRY_FRAME, and unwind_user_at_function_start() will result in a compile error, which is helpful when implementing support for unwind user fp in an architecture. Signed-off-by: Jens Remus <[email protected]> --- include/linux/unwind_user.h | 14 +++++++++++--- kernel/unwind/user.c | 4 ---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/include/linux/unwind_user.h b/include/linux/unwind_user.h index 7f7282516bf5..c3ff690a43e2 100644 --- a/include/linux/unwind_user.h +++ b/include/linux/unwind_user.h @@ -5,9 +5,17 @@ #include <linux/unwind_user_types.h> #include <asm/unwind_user.h> -#ifndef ARCH_INIT_USER_FP_FRAME - #define ARCH_INIT_USER_FP_FRAME -#endif +#ifndef CONFIG_HAVE_UNWIND_USER_FP + +#define ARCH_INIT_USER_FP_FRAME +#define ARCH_INIT_USER_FP_ENTRY_FRAME + +static inline bool unwind_user_at_function_start(struct pt_regs *regs) +{ + return false; +} + +#endif /* !CONFIG_HAVE_UNWIND_USER_FP */ int unwind_user(struct unwind_stacktrace *trace, unsigned int max_entries); diff --git a/kernel/unwind/user.c b/kernel/unwind/user.c index 0ca434f86e73..90ab3c1a205e 100644 --- a/kernel/unwind/user.c +++ b/kernel/unwind/user.c @@ -67,7 +67,6 @@ static int unwind_user_next_common(struct unwind_user_state *state, static int unwind_user_next_fp(struct unwind_user_state *state) { -#ifdef CONFIG_HAVE_UNWIND_USER_FP struct pt_regs *regs = task_pt_regs(current); if (state->topmost && unwind_user_at_function_start(regs)) { @@ -81,9 +80,6 @@ static int unwind_user_next_fp(struct unwind_user_state *state) ARCH_INIT_USER_FP_FRAME(state->ws) }; return unwind_user_next_common(state, &fp_frame); -#else - return -EINVAL; -#endif } static int unwind_user_next(struct unwind_user_state *state) -- 2.51.0
