aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/traps.c
diff options
context:
space:
mode:
authorWu Zhangjin <wuzhangjin@gmail.com>2011-07-23 08:41:24 -0400
committerRalf Baechle <ralf@linux-mips.org>2011-09-21 11:52:09 -0400
commit4d85f6afa43d366868fdaa19595722309e4843f6 (patch)
tree8bbd598f03b9a0ef7cba24bb7a9dab23f78b490e /arch/mips/kernel/traps.c
parent49de830ad7b94d05f6dbfbae97a03f80169a7462 (diff)
MIPS: Make the die_lock be raw
On preempt-rt this lock needs to be raw, so it does not get converted to a sleeping spinlock. Trying to sleep in a panic is not really desireable. Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/2636/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/traps.c')
-rw-r--r--arch/mips/kernel/traps.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index b7517e3abc85..01eff7e609e8 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -364,7 +364,7 @@ static int regs_to_trapnr(struct pt_regs *regs)
364 return (regs->cp0_cause >> 2) & 0x1f; 364 return (regs->cp0_cause >> 2) & 0x1f;
365} 365}
366 366
367static DEFINE_SPINLOCK(die_lock); 367static DEFINE_RAW_SPINLOCK(die_lock);
368 368
369void __noreturn die(const char *str, struct pt_regs *regs) 369void __noreturn die(const char *str, struct pt_regs *regs)
370{ 370{
@@ -378,7 +378,7 @@ void __noreturn die(const char *str, struct pt_regs *regs)
378 sig = 0; 378 sig = 0;
379 379
380 console_verbose(); 380 console_verbose();
381 spin_lock_irq(&die_lock); 381 raw_spin_lock_irq(&die_lock);
382 bust_spinlocks(1); 382 bust_spinlocks(1);
383#ifdef CONFIG_MIPS_MT_SMTC 383#ifdef CONFIG_MIPS_MT_SMTC
384 mips_mt_regdump(dvpret); 384 mips_mt_regdump(dvpret);
@@ -387,7 +387,7 @@ void __noreturn die(const char *str, struct pt_regs *regs)
387 printk("%s[#%d]:\n", str, ++die_counter); 387 printk("%s[#%d]:\n", str, ++die_counter);
388 show_registers(regs); 388 show_registers(regs);
389 add_taint(TAINT_DIE); 389 add_taint(TAINT_DIE);
390 spin_unlock_irq(&die_lock); 390 raw_spin_unlock_irq(&die_lock);
391 391
392 if (in_interrupt()) 392 if (in_interrupt())
393 panic("Fatal exception in interrupt"); 393 panic("Fatal exception in interrupt");