arch/tile: various bugs in stack backtracer
authorChris Metcalf <cmetcalf@tilera.com>
Thu, 29 Mar 2012 18:06:14 +0000 (14:06 -0400)
committerChris Metcalf <cmetcalf@tilera.com>
Mon, 2 Apr 2012 16:12:45 +0000 (12:12 -0400)
commit5f639fdcd8c186c8128c616e94a7e7b159c968ae
tree92b6f3658eeb428569baf3e8c4b0aee83d4ba077
parentefb734d8ed040b053f53fd53589ed5d9c9b5cd04
arch/tile: various bugs in stack backtracer

Fix a long-standing bug in the stack backtracer where we would print
garbage to the console instead of kernel function names, if the kernel
wasn't built with symbol support (e.g. mboot).

Make sure to tag every line of userspace backtrace output if we actually
have the mmap_sem, since that way if there's no tag, we know that it's
because we couldn't trylock the semaphore.

Stop doing a TLB flush and examining page tables during backtrace.
Instead, just trust that __copy_from_user_inatomic() will properly fault
and return a failure, which it should do in all cases.

Fix a latent bug where the backtracer would directly examine a signal
context in user space, rather than copying it safely to kernel memory
first.  This meant that a race with another thread could potentially
have caused a kernel panic.

Guard against unaligned sp when trying to restart backtrace at an
interrupt or signal handler point in the kernel backtracer.

Report kernel symbolic information for the call instruction rather
than for the following instruction.  We still report the actual numeric
address corresponding to the instruction after the call, for the sake
of consistency with the normal expectations for stack backtracers.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
arch/tile/include/asm/stack.h
arch/tile/kernel/stack.c
This page took 0.025474 seconds and 5 git commands to generate.