• Chris Metcalf's avatar
    arch/tile: various bugs in stack backtracer · 5f639fdc
    Chris Metcalf authored
    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: default avatarChris Metcalf <cmetcalf@tilera.com>