All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: Arjan van de Ven <arjan@linux.intel.com>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] warn: print the DMI board info name in a WARN/WARN_ON
Date: Fri, 28 Nov 2008 11:52:47 -0800	[thread overview]
Message-ID: <20081128115247.bfcb603c.akpm@linux-foundation.org> (raw)
In-Reply-To: <20081128170029.GD10487@elte.hu>

On Fri, 28 Nov 2008 18:00:29 +0100 Ingo Molnar <mingo@elte.hu> wrote:

> 
> * Arjan van de Ven <arjan@linux.intel.com> wrote:
> 
> > From acdc8771dfaf6e8236b9122364301f65f46d4b59 Mon Sep 17 00:00:00 2001
> > From: Arjan van de Ven <arjan@linux.intel.com>
> > Date: Fri, 28 Nov 2008 08:32:44 -0800
> > Subject: [PATCH] warn: print the DMI board info name in a WARN/WARN_ON
> > 
> > it's very useful for many low level WARN_ON's to find out which
> > motherboard has the broken BIOS etc... this patch adds a printk
> > to the WARN_ON code for this.
> > On architectures without DMI, gcc should optimize the code out.
> > 
> > Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
> > ---
> >  kernel/panic.c |    5 +++++
> >  1 files changed, 5 insertions(+), 0 deletions(-)
> > 
> > diff --git a/kernel/panic.c b/kernel/panic.c
> > index 2b913aa..9c1b7e0 100644
> > --- a/kernel/panic.c
> > +++ b/kernel/panic.c
> > @@ -21,6 +21,7 @@
> >  #include <linux/debug_locks.h>
> >  #include <linux/random.h>
> >  #include <linux/kallsyms.h>
> > +#include <linux/dmi.h>
> >  
> >  int panic_on_oops;
> >  static unsigned long tainted_mask;
> > @@ -328,12 +329,16 @@ void warn_slowpath(const char *file, int line, const char *fmt, ...)
> >  {
> >  	va_list args;
> >  	char function[KSYM_SYMBOL_LEN];
> > +	const char *board;
> >  	unsigned long caller = (unsigned long)__builtin_return_address(0);
> >  	sprint_symbol(function, caller);
> >  
> >  	printk(KERN_WARNING "------------[ cut here ]------------\n");
> >  	printk(KERN_WARNING "WARNING: at %s:%d %s()\n", file,
> >  		line, function);
> > +	board = dmi_get_system_info(DMI_PRODUCT_NAME);
> > +	if (board)
> > +		printk(KERN_WARNING "Hardware name: %s\n", board);
> >  
> >  	if (fmt) {
> >  		va_start(args, fmt);
> 
> nice idea - applied to tip/core/debug.
> 
> On architectures (or systems) where there's no DMI_PRODUCT_NAME string 
> available, we'll print nothing. It's also a simple lockless call so can 
> be called from any context.
> 
> Andrew, any objections?
> 

Nope.  This is the first time we've included dmi.h from such a core
place, but afaict all architectures should have encountered that file
by now.


  reply	other threads:[~2008-11-28 19:53 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-28 16:35 [PATCH 1/2] warn: consolidate warn_slowpath and warn_on_slowpath Arjan van de Ven
2008-11-28 16:36 ` [PATCH 2/2] warn: print the DMI board info name in a WARN/WARN_ON Arjan van de Ven
2008-11-28 17:00   ` Ingo Molnar
2008-11-28 19:52     ` Andrew Morton [this message]
2008-11-28 16:57 ` [PATCH 1/2] warn: consolidate warn_slowpath and warn_on_slowpath Ingo Molnar

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=20081128115247.bfcb603c.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=arjan@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    /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.