All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
To: Andrew Morton <akpm@linux-foundation.org>,
	Thomas Mingarelli <thomas.mingarelli@hpe.com>,
	Wim Van Sebroeck <wim@iguana.be>, Corey Minyard <minyard@acm.org>
Cc: linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org,
	Michal Hocko <mhocko@kernel.org>, Borislav Petkov <bp@alien8.de>,
	openipmi-developer@lists.sourceforge.net,
	Guenter Roeck <linux@roeck-us.net>
Subject: [PATCH 3/3] hpwdt: Use nmi_panic() when kernel panics in NMI handler
Date: Tue, 01 Mar 2016 10:50:41 +0900	[thread overview]
Message-ID: <20160301015041.4318.93922.stgit@softrs> (raw)
In-Reply-To: <20160301015035.4318.78677.stgit@softrs>

commit 58c5661f2144 ("panic, x86: Allow CPUs to save registers even
if looping in NMI context") introduced nmi_panic() which prevents
concurrent/recursive execution of panic().  It also saves registers
for the crash dump on x86.

hpwdt driver can call panic() from NMI handler, so replace it with
nmi_panic().

Signed-off-by: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
Cc: Thomas Mingarelli <thomas.mingarelli@hpe.com>
Cc: Wim Van Sebroeck <wim@iguana.be>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: linux-watchdog@vger.kernel.org
---
 drivers/watchdog/hpwdt.c |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
index 92443c3..fd0486f 100644
--- a/drivers/watchdog/hpwdt.c
+++ b/drivers/watchdog/hpwdt.c
@@ -496,11 +496,12 @@ static int hpwdt_pretimeout(unsigned int ulReason, struct pt_regs *regs)
 
 	if (!is_icru && !is_uefi) {
 		if (cmn_regs.u1.ral == 0) {
-			panic("An NMI occurred, "
+			nmi_panic(regs, "An NMI occurred, "
 				"but unable to determine source.\n");
+			goto handled;
 		}
 	}
-	panic("An NMI occurred. Depending on your system the reason "
+	nmi_panic(regs, "An NMI occurred. Depending on your system the reason "
 		"for the NMI is logged in any one of the following "
 		"resources:\n"
 		"1. Integrated Management Log (IML)\n"
@@ -508,6 +509,13 @@ static int hpwdt_pretimeout(unsigned int ulReason, struct pt_regs *regs)
 		"3. OA Forward Progress Log\n"
 		"4. iLO Event Log");
 
+handled:
+	/*
+	 * Returning from nmi_panic() means this CPU was processing panic()
+	 * before NMI.  Return NMI_HANDLED and go back to panic routines.
+	 */
+	return NMI_HANDLED;
+
 out:
 	return NMI_DONE;
 }

  parent reply	other threads:[~2016-03-01  1:50 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-01  1:50 [PATCH 0/3] Use nmi_panic() in panic on NMI case Hidehiro Kawai
2016-03-01  1:50 ` [PATCH 1/3] panic: Export panic_cpu and nmi_panic_self_stop Hidehiro Kawai
2016-03-01  7:24   ` Borislav Petkov
2016-03-01  7:48     ` 河合英宏 / KAWAI,HIDEHIRO
2016-03-01  8:49       ` Michal Hocko
2016-03-01  1:50 ` [PATCH 2/3] ipmi/watchdog: Use nmi_panic() when kernel panics in NMI handler Hidehiro Kawai
2016-03-01  2:30   ` Corey Minyard
2016-03-01  4:23     ` 河合英宏 / KAWAI,HIDEHIRO
2016-03-01  5:12       ` Guenter Roeck
2016-03-01  2:56   ` Guenter Roeck
2016-03-01  8:50   ` Michal Hocko
2016-03-01  1:50 ` Hidehiro Kawai [this message]
2016-03-01  2:55   ` [PATCH 3/3] hpwdt: " Guenter Roeck
2016-03-01  3:54     ` 河合英宏 / KAWAI,HIDEHIRO

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160301015041.4318.93922.stgit@softrs \
    --to=hidehiro.kawai.ez@hitachi.com \
    --cc=akpm@linux-foundation.org \
    --cc=bp@alien8.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=mhocko@kernel.org \
    --cc=minyard@acm.org \
    --cc=openipmi-developer@lists.sourceforge.net \
    --cc=thomas.mingarelli@hpe.com \
    --cc=wim@iguana.be \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.