tree 337f045bbb1e55ded6d423ff1003ec39cdbb18c9
parent 26fadd3672964596d33548490b9756014ae0f414
author Matt Fleming <matt@console-pimps.org> 1256410617 +0000
committer Paul Mundt <lethal@linux-sh.org> 1256519096 +0900

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>
