kernel_optimize_test/arch/tile/kernel
Chris Metcalf 5f639fdcd8 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>
2012-04-02 12:12:45 -04:00
..
asm-offsets.c arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
backtrace.c arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
compat_signal.c tile: Use set_current_blocked() and block_sigmask() 2012-03-13 16:42:05 -04:00
compat.c [PATCH v3] ipc: provide generic compat versions of IPC syscalls 2012-03-15 13:13:38 -04:00
early_printk.c Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
entry.S arch/tile: use a cleaner technique to enable interrupt for cpu_idle() 2011-03-01 16:20:48 -05:00
futex_64.S arch/tile: finish enabling support for TILE-Gx 64-bit chip 2011-05-12 15:52:12 -04:00
hardwall.c arch/tile: more /proc and /sys file support 2011-05-27 10:39:05 -04:00
head_32.S arch/tile: support newer binutils assembler shift semantics 2011-03-17 14:32:06 -04:00
head_64.S arch/tile: finish enabling support for TILE-Gx 64-bit chip 2011-05-12 15:52:12 -04:00
hvglue.lds arch/tile: Enable more sophisticated IRQ model for 32-bit chips. 2010-07-06 13:34:01 -04:00
init_task.c arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
intvec_32.S tile: revert change from <asm/atomic.h> to <linux/atomic.h> in asm files 2011-10-13 08:25:01 -04:00
intvec_64.S arch/tile: finish enabling support for TILE-Gx 64-bit chip 2011-05-12 15:52:12 -04:00
irq.c arch/tile: use new generic {enable,disable}_percpu_irq() routines 2011-12-03 15:31:49 -05:00
machine_kexec.c treewide: convert uses of ATTRIB_NORETURN to __noreturn 2012-01-12 20:13:03 -08:00
Makefile arch/tile: more /proc and /sys file support 2011-05-27 10:39:05 -04:00
messaging.c arch/tile: bomb raw_local_irq_ to arch_local_irq_ 2010-11-01 15:30:42 -04:00
module.c arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
pci-dma.c arch/tile: add a few #includes and an EXPORT to catch up with kernel changes. 2011-12-03 15:31:41 -05:00
pci.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
proc.c Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
process.c arch/tile: avoid false corrupt frame warning in early boot 2012-04-02 12:12:38 -04:00
ptrace.c arch/tile: don't allow user code to set the PL via ptrace or signal return 2010-11-01 15:31:17 -04:00
reboot.c arch/tile: bomb raw_local_irq_ to arch_local_irq_ 2010-11-01 15:30:42 -04:00
regs_32.S Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
regs_64.S Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
relocate_kernel.S arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
setup.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
signal.c tile: Use set_current_blocked() and block_sigmask() 2012-03-13 16:42:05 -04:00
single_step.c Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
smp.c smp: introduce a generic on_each_cpu_mask() function 2012-03-28 17:14:35 -07:00
smpboot.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
stack.c arch/tile: various bugs in stack backtracer 2012-04-02 12:12:45 -04:00
sys.c arch/tile: cleanups for tilegx compat mode 2011-05-19 22:56:13 -04:00
sysfs.c arch/tile: Fix up from commit 8a25a2fd12 2012-03-12 15:31:37 -04:00
tile-desc_32.c arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
tile-desc_64.c arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
time.c clocksource: tile: convert to use clocksource_register_hz 2011-06-03 17:26:21 -04:00
tlb.c tile: replace mm->cpu_vm_mask with mm_cpumask() 2011-05-04 14:41:44 -04:00
traps.c Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
vmlinux.lds.S percpu: Always align percpu output section to PAGE_SIZE 2011-03-24 18:50:09 +01:00