From 17e1762c985a5213ffe22cc05f70d35a76ff0b50 Mon Sep 17 00:00:00 2001 From: Hosung Kim Date: Mon, 18 Jun 2018 20:11:44 +0900 Subject: [PATCH] Revert "arm64: traps: disable irq in die()" This reverts commit 6f44a0bacb79a03972c83759711832b382b1b8ac. This patch causes a hang situation when running hardlockup detector or fiq debugger or multistage watchdog. Change-Id: I4ae25ad7671381cc1333d5429790d30cf1a86789 Signed-off-by: Hosung Kim --- arch/arm64/kernel/traps.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c index 5109685df7ec..e0e663d97514 100644 --- a/arch/arm64/kernel/traps.c +++ b/arch/arm64/kernel/traps.c @@ -254,12 +254,10 @@ static DEFINE_RAW_SPINLOCK(die_lock); void die(const char *str, struct pt_regs *regs, int err) { int ret; - unsigned long flags; - - raw_spin_lock_irqsave(&die_lock, flags); oops_enter(); + raw_spin_lock_irq(&die_lock); console_verbose(); bust_spinlocks(1); ret = __die(str, err, regs); @@ -269,15 +267,13 @@ void die(const char *str, struct pt_regs *regs, int err) bust_spinlocks(0); add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE); + raw_spin_unlock_irq(&die_lock); oops_exit(); if (in_interrupt()) panic("Fatal exception in interrupt"); if (panic_on_oops) panic("Fatal exception"); - - raw_spin_unlock_irqrestore(&die_lock, flags); - if (ret != NOTIFY_STOP) do_exit(SIGSEGV); } -- 2.20.1