diff options
-rw-r--r-- | arch/sparc/include/asm/irq_64.h | 3 | ||||
-rw-r--r-- | arch/sparc64/kernel/process.c | 10 |
2 files changed, 11 insertions, 2 deletions
diff --git a/arch/sparc/include/asm/irq_64.h b/arch/sparc/include/asm/irq_64.h index 0bb9bf531745..3473e25231d9 100644 --- a/arch/sparc/include/asm/irq_64.h +++ b/arch/sparc/include/asm/irq_64.h | |||
@@ -90,4 +90,7 @@ static inline unsigned long get_softint(void) | |||
90 | return retval; | 90 | return retval; |
91 | } | 91 | } |
92 | 92 | ||
93 | void __trigger_all_cpu_backtrace(void); | ||
94 | #define trigger_all_cpu_backtrace() __trigger_all_cpu_backtrace() | ||
95 | |||
93 | #endif | 96 | #endif |
diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c index fc8137a21ced..e1eff41809cc 100644 --- a/arch/sparc64/kernel/process.c +++ b/arch/sparc64/kernel/process.c | |||
@@ -300,7 +300,6 @@ void show_regs(struct pt_regs *regs) | |||
300 | #endif | 300 | #endif |
301 | } | 301 | } |
302 | 302 | ||
303 | #ifdef CONFIG_MAGIC_SYSRQ | ||
304 | struct global_reg_snapshot global_reg_snapshot[NR_CPUS]; | 303 | struct global_reg_snapshot global_reg_snapshot[NR_CPUS]; |
305 | static DEFINE_SPINLOCK(global_reg_snapshot_lock); | 304 | static DEFINE_SPINLOCK(global_reg_snapshot_lock); |
306 | 305 | ||
@@ -362,7 +361,7 @@ static void __global_reg_poll(struct global_reg_snapshot *gp) | |||
362 | } | 361 | } |
363 | } | 362 | } |
364 | 363 | ||
365 | static void sysrq_handle_globreg(int key, struct tty_struct *tty) | 364 | void __trigger_all_cpu_backtrace(void) |
366 | { | 365 | { |
367 | struct thread_info *tp = current_thread_info(); | 366 | struct thread_info *tp = current_thread_info(); |
368 | struct pt_regs *regs = get_irq_regs(); | 367 | struct pt_regs *regs = get_irq_regs(); |
@@ -412,6 +411,13 @@ static void sysrq_handle_globreg(int key, struct tty_struct *tty) | |||
412 | spin_unlock_irqrestore(&global_reg_snapshot_lock, flags); | 411 | spin_unlock_irqrestore(&global_reg_snapshot_lock, flags); |
413 | } | 412 | } |
414 | 413 | ||
414 | #ifdef CONFIG_MAGIC_SYSRQ | ||
415 | |||
416 | static void sysrq_handle_globreg(int key, struct tty_struct *tty) | ||
417 | { | ||
418 | __trigger_all_cpu_backtrace(); | ||
419 | } | ||
420 | |||
415 | static struct sysrq_key_op sparc_globalreg_op = { | 421 | static struct sysrq_key_op sparc_globalreg_op = { |
416 | .handler = sysrq_handle_globreg, | 422 | .handler = sysrq_handle_globreg, |
417 | .help_msg = "Globalregs", | 423 | .help_msg = "Globalregs", |