• Russell King (Oracle)'s avatar
    ARM: unwind: set frame.pc correctly for current-thread unwinding · c46c2c9b
    Russell King (Oracle) authored
    When e.g. a WARN_ON() is encountered, we attempt to unwind the current
    thread. To do this, we set frame.pc to unwind_backtrace, which means it
    points at the beginning of the function. However, the rest of the state
    is initialised from within the function, which means the function
    prologue has already been run.
    
    This can be confusing, and with a recent patch from Ard, can result in
    the unwinder misbehaving if we want to be strict about the PC value.
    
    If we correctly initialise the state so it is self-consistent (in other
    words, set frame.pc to the location we are initialising it) then we
    eliminate this confusion, and avoid possible future issues.
    Reviewed-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
    c46c2c9b
stacktrace.c 4.97 KB