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
..
cpu
sh: Don't enable interrupts in the page fault path
2009-09-28 15:11:45 +09:00
vsyscall
kbuild: rename ld-option to cc-ldoption
2009-09-20 12:27:42 +02:00
.gitignore
sh: Add an arch/sh/kernel/.gitignore
2008-07-29 08:29:32 +09:00
asm-offsets.c
sh: Provide diagnostic kernel stack checks
2009-07-11 10:07:58 +09:00
cpufreq.c
sh: cpufreq: Include CPU id in info messages.
2009-09-15 09:26:04 +09:00
crash_dump.c
kdump: make elfcorehdr_addr independent of CONFIG_PROC_VMCORE
2008-10-20 08:52:39 -07:00
debugtraps.S
sh: unwinder: Use a special bug flag for unwinder traps.
2009-08-22 05:28:25 +09:00
disassemble.c
sh: Add a simple code dumper for SUPERH32 show_regs().
2008-12-22 18:43:49 +09:00
dumpstack.c
sh: flag the default unwinder as reliable.
2009-08-15 01:09:03 +09:00
dwarf.c
sh: Check for return_to_handler when unwinding the stack
2009-10-26 10:04:56 +09:00
early_printk.c
sh: Fix up early printk build error.
2009-08-04 15:54:33 +09:00
entry-common.S
sh: Fix a TRACE_IRQS_OFF typo.
2009-10-14 15:50:28 +09:00
ftrace.c
sh: ftrace: Fix up syscall tracepoint support.
2009-10-13 12:42:48 +09:00
gpio.c
sh: use gpiolib
2009-01-27 14:49:10 +09:00
head_32.S
sh: convert to use __HEAD and HEAD_TEXT macros.
2009-04-26 09:20:39 -07:00
head_64.S
sh: convert to use __HEAD and HEAD_TEXT macros.
2009-04-26 09:20:39 -07:00
idle.c
sh: Provide cpu_idle_wait() to fix up cpuidle/SMP build.
2009-06-23 17:30:17 +09:00
init_task.c
Use new __init_task_data macro in arch init_task.c files.
2009-09-21 06:27:08 +02:00
io.c
sh: Optimise memcpy_to/fromio for SH4
2009-08-24 17:35:07 +09:00
io_generic.c
sh: Handle ioport_map() cases for >= P1SEG addresses.
2009-09-28 15:04:04 +09:00
io_trapped.c
sh: Only shout about fixing up unexpected unaligned accesses
2009-08-29 20:31:44 +09:00
irq.c
sh: __irq_entry annotate do_IRQ().
2009-10-26 09:58:31 +09:00
kgdb.c
sh: Kill off kgdb's magical NMI debouncing.
2009-09-01 17:45:35 +09:00
kprobes.c
sh: kprobes: kretprobe_trampoline needs to be global.
2008-09-09 08:13:28 +09:00
localtimer.c
sh: Fix up clockevents broadcasting.
2009-08-19 18:00:03 +09:00
machine_kexec.c
sh: disallow kexec virtual entry
2009-03-20 18:56:04 +09:00
machvec.c
sh: Set the default I/O port base to P2SEG.
2009-09-28 15:05:41 +09:00
Makefile
sh: nmi_debug support.
2009-09-01 17:38:32 +09:00
module.c
module: cleanup FIXME comments about trimming exception table entries.
2009-06-12 21:47:05 +09:30
nmi_debug.c
sh: nmi_debug support.
2009-09-01 17:38:32 +09:00
process_32.c
sh: Use internal watchdog timer to perform reset
2009-08-24 16:20:44 +09:00
process_64.c
sh: Tidy up NEFF-based sign extension for SH-5.
2009-08-04 17:14:39 +09:00
ptrace_32.c
sh: Wire up HAVE_SYSCALL_TRACEPOINTS.
2009-09-16 14:30:34 +09:00
ptrace_64.c
sh: Wire up HAVE_SYSCALL_TRACEPOINTS.
2009-09-16 14:30:34 +09:00
relocate_kernel.S
sh: add kexec jump support
2009-03-18 18:57:43 +09:00
setup.c
sh: Tidy up SMP cpuinfo.
2009-10-14 15:43:52 +09:00
sh_bios.c
sh: Kill off sh_bios_in_gdb_mode().
2008-12-22 18:44:44 +09:00
sh_ksyms_32.c
sh: Build fix: define more __movmem* symbols
2009-10-26 10:00:26 +09:00
sh_ksyms_64.c
sh: Fix up the SH-5 build with caches enabled.
2009-08-16 01:50:17 +09:00
signal_32.c
sh: Optimize the setup_rt_frame() I-cache flush.
2009-10-14 15:49:45 +09:00
signal_64.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
2009-09-16 13:48:32 +09:00
smp.c
sh: Populate initial secondary CPU info from boot_cpu_data.
2009-10-14 15:44:12 +09:00
stacktrace.c
sh: stacktrace: Properly terminate the trace entry buffer.
2009-08-15 01:11:37 +09:00
swsusp.c
sh: hibernation support
2009-03-10 12:55:40 +09:00
sys_sh.c
sh: fix sys_cacheflush error checking
2009-08-24 18:59:09 +09:00
sys_sh32.c
headers: utsname.h redux
2009-09-23 18:13:10 -07:00
sys_sh64.c
headers: utsname.h redux
2009-09-23 18:13:10 -07:00
syscalls_32.S
perf: Do the big rename: Performance Counters -> Performance Events
2009-09-21 14:28:04 +02:00
syscalls_64.S
perf: Do the big rename: Performance Counters -> Performance Events
2009-09-21 14:28:04 +02:00
time.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
2009-09-18 09:43:09 -07:00
topology.c
sh: replace remaining __FUNCTION__ occurrences
2008-03-06 11:18:22 +09:00
traps.c
sh: nmi_debug support.
2009-09-01 17:38:32 +09:00
traps_32.c
sh: update die() output.
2009-10-13 10:57:52 +09:00
traps_64.c
sh: Always fixup unaligned userspace accesses on sh64.
2009-05-08 20:32:56 +09:00
unwinder.c
sh: unwinder: Use a special bug flag for unwinder traps.
2009-08-22 05:28:25 +09:00
vmlinux.lds.S
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
2009-09-16 13:48:32 +09:00