diff options
author | Wu Zhangjin <wuzhangjin@gmail.com> | 2011-07-23 08:41:24 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2011-09-21 11:52:09 -0400 |
commit | 4d85f6afa43d366868fdaa19595722309e4843f6 (patch) | |
tree | 8bbd598f03b9a0ef7cba24bb7a9dab23f78b490e /arch/mips | |
parent | 49de830ad7b94d05f6dbfbae97a03f80169a7462 (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')
-rw-r--r-- | arch/mips/kernel/traps.c | 6 |
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 | ||
367 | static DEFINE_SPINLOCK(die_lock); | 367 | static DEFINE_RAW_SPINLOCK(die_lock); |
368 | 368 | ||
369 | void __noreturn die(const char *str, struct pt_regs *regs) | 369 | void __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"); |