linux/arch/sh
Matt Fleming 60339fad5c sh: Check for return_to_handler when unwinding the stack
When CONFIG_FUNCTION_GRAPH_TRACER is enabled the function graph tracer
may patch return addresses on the stack with the address of
return_to_handler(). This really confuses the DWARF unwinder because it
will try find the caller of return_to_handler(), not the caller of the
real return address.

So teach the DWARF unwinder how to find the real return address whenever
it encounters return_to_handler().

This patch does not cope very well when multiple return addresses on the
stack have been patched. To make it work properly it would require state
to track how many return_to_handler()'s have been seen so that we'd know
where to look in current->curr_ret_stack[]. So for now, instead of
trying to handle this, just moan if more than one return address on the
stack has been patched.

Signed-off-by: Matt Fleming <matt@console-pimps.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2009-10-26 10:04:56 +09:00
..
boards sh: Remove BKL from landisk gio. 2009-10-16 14:42:33 +09:00
boot kbuild: use INSTALLKERNEL to select customized installkernel script 2009-09-20 12:18:14 +02:00
cchips sh: mach-hp6xx: Fix up the hp6xx build for hd64461 changes. 2009-05-20 11:27:13 +09:00
configs sh: enable onenand support in kfr2r09 defconfig. 2009-09-25 11:55:07 +09:00
drivers Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx into for-linus 2009-09-23 18:31:11 +10:00
include Merge branch 'for-linus' of git://neil.brown.name/md 2009-09-24 07:55:29 -07:00
kernel sh: Check for return_to_handler when unwinding the stack 2009-10-26 10:04:56 +09:00
lib sh: Kill off dcache writeback from copy_page(). 2009-09-08 16:23:08 +09:00
lib64 sh64: Kill off special clear_page() implementation. 2009-08-04 17:17:00 +09:00
math-emu sh: Fix up the math-emu build. 2007-06-11 15:57:42 +09:00
mm sh: disabled cache handling fix. 2009-10-16 14:38:48 +09:00
oprofile sh: oprofile: Kill off dead valid_kernel_stack(). 2009-08-14 04:59:50 +09:00
tools sh: sh7785lcr: fix prototype board on 32bit MMU mode. 2009-08-28 10:19:13 +09:00
Kconfig sh: Kill off stray HAVE_FTRACE_SYSCALLS reference. 2009-10-16 18:14:19 +09:00
Kconfig.cpu sh: Tidy up SH-4A boot_cpu_data.flags probing. 2009-06-01 19:50:08 +09:00
Kconfig.debug sh: Add initial support for SH7757 CPU subtype 2009-08-21 17:25:47 +09:00
Makefile sh: Add EcoVec (SH7724) board support 2009-08-20 10:13:16 +09:00