sh: handle early calls to return_address() when using dwarf unwinder.
authorPaul Mundt <lethal@linux-sh.org>
Tue, 25 May 2010 07:16:40 +0000 (16:16 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Tue, 25 May 2010 07:16:40 +0000 (16:16 +0900)
commit8a37f520523df971bd3f926d8bd45ead37e857e8
tree762b79bb60c55ef320ec72fdf7c079fa14cb765b
parente1f42ff4f06e5feaa57a22556ad977ef62164e14
sh: handle early calls to return_address() when using dwarf unwinder.

The dwarf unwinder ties in to an early initcall, but it's possible that
return_address() calls will be made prior to that. This implements some
additional error handling in to the dwarf unwinder as well as an exit
path in the return_address() case to bail out if the unwinder hasn't come
up yet.

This fixes a NULL pointer deref in early boot when mempool_alloc() blows
up on the not-yet-ready mempool via dwarf_unwind_stack().

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/dwarf.c
arch/sh/kernel/return_address.c