All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: Jerry Hoemann <jerry.hoemann@hpe.com>
Cc: wim@linux-watchdog.org, linux-watchdog@vger.kernel.org,
	linux-kernel@vger.kernel.org, rwright@hpe.com,
	maurice.a.saldivar@hpe.com
Subject: Re: [PATCH v2 03/11] watchdog/hpwdt: Update nmi_panic message.
Date: Tue, 13 Feb 2018 09:41:35 -0800	[thread overview]
Message-ID: <20180213174135.GA22401@roeck-us.net> (raw)
In-Reply-To: <20180212052111.12010-4-jerry.hoemann@hpe.com>

On Sun, Feb 11, 2018 at 10:21:03PM -0700, Jerry Hoemann wrote:
> Include the nmistat in the nmi_panic message to give support
> an indication why the NMI was called (e.g. a timeout or generate
> nmi button.)
> 
> Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com>
> ---
>  drivers/watchdog/hpwdt.c | 27 +++++++++++++++++++--------
>  1 file changed, 19 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
> index 20a13c5d0285..6f7949ef9a23 100644
> --- a/drivers/watchdog/hpwdt.c
> +++ b/drivers/watchdog/hpwdt.c
> @@ -108,24 +108,35 @@ static int hpwdt_my_nmi(void)
>  	return ioread8(hpwdt_nmistat) & 0x6;
>  }
>  
> +static inline int hexdigit(int v)
> +{
> +	return (v > 9) ? (v-9+'A') : (v+'0');
> +}
> +
>  /*
>   *	NMI Handler
>   */
>  static int hpwdt_pretimeout(unsigned int ulReason, struct pt_regs *regs)
>  {
> -	if ((ulReason == NMI_UNKNOWN) && !hpwdt_my_nmi())
> +	unsigned int mynmi = hpwdt_my_nmi();
> +	static char panic_msg[] =
> +		"00: 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"
> +		"2. OA Syslog\n"
> +		"3. OA Forward Progress Log\n"
> +		"4. iLO Event Log";
> +
> +	if ((ulReason == NMI_UNKNOWN) && !mynmi)
>  		return NMI_DONE;
>  
>  	if (allow_kdump)
>  		hpwdt_stop();
>  
> -	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"
> -		"2. OA Syslog\n"
> -		"3. OA Forward Progress Log\n"
> -		"4. iLO Event Log");
> +	panic_msg[0] = hexdigit((mynmi>>4)&0xf);
> +	panic_msg[1] = hexdigit(mynmi&0xf);

No need to reinvent the wheel.

	panic_msg[0] = hex_asc_hi(mynmi);
	panic_msg[1] = hex_asc_lo(mynmi);

or even better
	hex_byte_pack(panic_msg, mynmi);

There are matching _upper functions if you prefer A..F instead of a..f.

Guenter

  reply	other threads:[~2018-02-13 17:41 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-12  5:21 [PATCH v2 00/11] watchdog/hpwdt: Update driver to use watchdog core Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 01/11] watchdog/hpwdt: Remove legacy NMI sourcing Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 02/11] watchdog/hpwdt: remove include files no longer needed Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 03/11] watchdog/hpwdt: Update nmi_panic message Jerry Hoemann
2018-02-13 17:41   ` Guenter Roeck [this message]
2018-02-13 21:59     ` Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 04/11] watchdog/hpwdt: white space changes Jerry Hoemann
2018-02-12  9:35   ` Philippe Ombredanne
2018-02-13 17:44     ` Guenter Roeck
2018-02-12  5:21 ` [PATCH v2 05/11] watchdog/hpwdt: Update Module info Jerry Hoemann
2018-02-13 17:49   ` Guenter Roeck
2018-02-14  0:01     ` Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 06/11] watchdog/hpwdt: Modify to use watchdog core Jerry Hoemann
2018-02-12  9:06   ` Marcus Folkesson
2018-02-13 18:05     ` Guenter Roeck
2018-02-13 21:36     ` Jerry Hoemann
2018-02-13 21:55       ` Guenter Roeck
2018-02-13 23:54         ` Jerry Hoemann
2018-02-14 20:53     ` Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 07/11] watchdog/hpwdt: Select WATCHDOG_CORE Jerry Hoemann
2018-02-13 18:04   ` Guenter Roeck
2018-02-12  5:21 ` [PATCH v2 08/11] watchdog/hpwdt: Programable Pretimeout NMI Jerry Hoemann
2018-02-12  9:09   ` Marcus Folkesson
2018-02-12  5:21 ` [PATCH v2 09/11] watchdog/hpwdt: condition early return of NMI handler on iLO5 Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 10/11] watchdog/hpwdt: remove allow_kdump module parameter Jerry Hoemann
2018-02-13 18:20   ` Guenter Roeck
2018-02-13 23:10     ` Jerry Hoemann
2018-02-12  5:21 ` [PATCH v2 11/11] watchdog/hpwdt: Update driver version Jerry Hoemann
2018-02-13 17:07   ` Guenter Roeck
2018-02-14  0:21     ` Jerry Hoemann

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=20180213174135.GA22401@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=jerry.hoemann@hpe.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=maurice.a.saldivar@hpe.com \
    --cc=rwright@hpe.com \
    --cc=wim@linux-watchdog.org \
    /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.