summaryrefslogtreecommitdiff
path: root/arch/xtensa/kernel/stacktrace.c (follow)
Commit message (Collapse)AuthorAge
* xtensa: fix return_addressMax Filippov2019-04-27
| | | | | | | | | | | | | | | | commit ada770b1e74a77fff2d5f539bf6c42c25f4784db upstream. return_address returns the address that is one level higher in the call stack than requested in its argument, because level 0 corresponds to its caller's return address. Use requested level as the number of stack frames to skip. This fixes the address reported by might_sleep and friends. Cc: stable@vger.kernel.org Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* xtensa: move oprofile stack tracing to stacktrace.cMax Filippov2015-08-17
| | | | | | | | Old oprofile interface will share user stack tracing with new perf interface. Move oprofile user/kernel stack tracing to stacktrace.c to make it possible. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
* xtensa: provide custom CALLER_ADDR* implementationsMax Filippov2013-05-09
| | | | | | | | | | | | | | | Definition of CALLER_ADDR* through __builtin_return_address makes compiler insert calls to __xtensa_libgcc_window_spill, which in turn makes fast_syscall_spill_registers syscall that clobbers registers when called from the kernel mode, leading to invalid opcode exceptions on return to userspace. Provide definition for CALLER_ADDR0 as MAKE_PC_FROM_RA(a0, a1) and in case CONFIG_FRAME_POINTER is enabled extract CALLER_ADDR{1-3} from stack. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Chris Zankel <chris@zankel.net>
* xtensa: add stacktrace supportMax Filippov2013-05-09
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Chris Zankel <chris@zankel.net>