Re: [patch 13/17] Use WARN() in drivers/base/

Andrew Morton
2008-07-11T22:11:45Z

On Fri, 11 Jul 2008 13:54:09 -0700 Arjan van de Ven <arjan@infradead.org> wrote:

> On Fri, 11 Jul 2008 12:20:11 -0700
> Andrew Morton <akpm@linux-foundation.org> wrote:
>
> > On Tue, 8 Jul 2008 09:53:07 -0700 Arjan van de Ven
> > <arjan@infradead.org> wrote:
> >
> > > Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>Index:
> > > linux.trees.git/drivers/base/core.c
> >
> > A number of these patches had mangled signed-off-by: lines.
> >
> > Please try to be consistent in the presence and placement of the ^---
> > line at the end of the changelog.
> >
> > I verified that all three copies of "Use WARN() in fs/" were the same.
> >
> > I've decided that I don't like the whole thing :( This:
> >
> > #define WARN(condition, format...)
> > ({ \ int __ret_warn_on
> > = !!(condition); \ if
> > (unlikely(__ret_warn_on)) \
> > __WARN_printf(format); \
> > unlikely(__ret_warn_on); \ })
> >
> > is not a WARN(). It is a WARN_ON() function. The use of this name
> > now leaves us no sensible name under which to implement
> >
>
> I'm totally open to a better name.
> Having a condition in there is really nice, it means we can fold the
> if() into it in many cases. Just like BUG_ON() did.

Alexey's WARN_IF() would suit, I guess. Plain old "WARN" is just wrong
here, alas.

I can just edit all the diffs if we're all OK with that.

I don't suppose there's any way of tricking the preprocessor into
supporting

WARN_ON(foo == 42);

as well as

WARN_ON(foo == 42, "bite me!");