diff options
author | Dima Zavin <dima@android.com> | 2011-10-18 16:59:54 -0700 |
---|---|---|
committer | Dima Zavin <dima@android.com> | 2011-10-20 13:45:55 -0700 |
commit | 8b7fd32923143097928a21b33b6238084072f8f9 (patch) | |
tree | 2ffae2068aae10adce869fcdba8f25913c051073 /arch/arm/include/asm | |
parent | fe04aa151f7254a38c35d5f1d89fa0d15c3dfce4 (diff) | |
download | kernel_samsung_tuna-8b7fd32923143097928a21b33b6238084072f8f9.zip kernel_samsung_tuna-8b7fd32923143097928a21b33b6238084072f8f9.tar.gz kernel_samsung_tuna-8b7fd32923143097928a21b33b6238084072f8f9.tar.bz2 |
ARM: smp: implement arch_trigger_all_cpus_backtrace using IPI
Based on a rough patch by frank.rowand@am.sony.com
Since ARM doesn't have an NMI (fiq's are not always available),
send an IPI to all other CPUs (current cpu prints the stack directly)
to capture a backtrace.
Change-Id: I8b163c8cec05d521b433ae133795865e8a33d4e2
Signed-off-by: Dima Zavin <dima@android.com>
Diffstat (limited to 'arch/arm/include/asm')
-rw-r--r-- | arch/arm/include/asm/hardirq.h | 2 | ||||
-rw-r--r-- | arch/arm/include/asm/irq.h | 3 | ||||
-rw-r--r-- | arch/arm/include/asm/smp.h | 2 |
3 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/include/asm/hardirq.h b/arch/arm/include/asm/hardirq.h index 89ad180..2635c8b 100644 --- a/arch/arm/include/asm/hardirq.h +++ b/arch/arm/include/asm/hardirq.h @@ -5,7 +5,7 @@ #include <linux/threads.h> #include <asm/irq.h> -#define NR_IPI 5 +#define NR_IPI 6 typedef struct { unsigned int __softirq_pending; diff --git a/arch/arm/include/asm/irq.h b/arch/arm/include/asm/irq.h index 2721a58..28810c6 100644 --- a/arch/arm/include/asm/irq.h +++ b/arch/arm/include/asm/irq.h @@ -25,6 +25,9 @@ extern void migrate_irqs(void); extern void asm_do_IRQ(unsigned int, struct pt_regs *); void init_IRQ(void); +void arch_trigger_all_cpu_backtrace(void); +#define arch_trigger_all_cpu_backtrace arch_trigger_all_cpu_backtrace + #endif #endif diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h index e42d96a..74f288f 100644 --- a/arch/arm/include/asm/smp.h +++ b/arch/arm/include/asm/smp.h @@ -93,4 +93,6 @@ extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); */ extern void show_local_irqs(struct seq_file *, int); +extern void smp_send_all_cpu_backtrace(void); + #endif /* ifndef __ASM_ARM_SMP_H */ |