]> git.karo-electronics.de Git - karo-tx-linux.git/commit
arch/tile: various improvements to stack backtracer
authorChris Metcalf <cmetcalf@tilera.com>
Thu, 29 Mar 2012 18:06:14 +0000 (14:06 -0400)
committerChris Metcalf <cmetcalf@tilera.com>
Fri, 30 Mar 2012 22:55:41 +0000 (18:55 -0400)
commitf1487ba2f8b4245220b763559f65ccad8903d729
treec7ba004c94632abefcee96e3a57e6a55792b6a8d
parent1f0af9097d43587a874bc92e975f7e5e05348a90
arch/tile: various improvements to 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