All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>,
	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
Subject: Re: [PATCH 3/3] hpwdt: Use nmi_panic() when kernel panics in NMI handler
Date: Mon, 29 Feb 2016 18:55:24 -0800	[thread overview]
Message-ID: <56D5049C.50207@roeck-us.net> (raw)
In-Reply-To: <20160301015041.4318.93922.stgit@softrs>

On 02/29/2016 05:50 PM, Hidehiro Kawai wrote:
> 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");

This message should really be in a single line.
Sure, strictly speaking that should be done in a separate patch,
but since you touch the line you might as well fix it.

> +			goto handled;

The goto is unnecessary. Just return NMI_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.
> +	 */

I don't think this comment adds much if any value.

> +	return NMI_HANDLED;
> +
>   out:

Any goto to this label does no longer serve a useful purpose (if it ever served one),
and should be replaced with "return NMI_DONE;"

>   	return NMI_DONE;
>   }
>
>
>


  reply	other threads:[~2016-03-01  2:55 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 ` [PATCH 3/3] hpwdt: " Hidehiro Kawai
2016-03-01  2:55   ` Guenter Roeck [this message]
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=56D5049C.50207@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=akpm@linux-foundation.org \
    --cc=bp@alien8.de \
    --cc=hidehiro.kawai.ez@hitachi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --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.