• Li Huafei's avatar
    ARM: 9259/1: stacktrace: Convert stacktrace to generic ARCH_STACKWALK · 9fbed16c
    Li Huafei authored
    Historically architectures have had duplicated code in their stack trace
    implementations for filtering what gets traced. In order to avoid this
    duplication some generic code has been provided using a new interface
    arch_stack_walk(), enabled by selecting ARCH_STACKWALK in Kconfig, which
    factors all this out into the generic stack trace code. Convert ARM to
    use this common infrastructure.
    
    When initializing the stack frame of the current task, arm64 uses
    __builtin_frame_address(1) to initialize the frame pointer, skipping
    arch_stack_walk(), see the commit c607ab4f ("arm64: stacktrace:
    don't trace arch_stack_walk()"). Since __builtin_frame_address(1) does
    not work on ARM, unwind_frame() is used to unwind the stack one layer
    forward before calling walk_stackframe().
    Signed-off-by: default avatarLi Huafei <lihuafei1@huawei.com>
    Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
    9fbed16c
stacktrace.c 4.97 KB