[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1300385802.16880.348.camel@gandalf.stny.rr.com>
Date: Thu, 17 Mar 2011 14:16:42 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Eric Dumazet <eric.dumazet@...il.com>
Cc: richard -rw- weinberger <richard.weinberger@...il.com>,
laijs@...fujitsu.com, LKML <linux-kernel@...r.kernel.org>,
user-mode-linux-devel@...ts.sourceforge.net, dvhart@...ux.intel.com
Subject: Re: um: WARNING: at kernel/futex.c:786 __unqueue_futex
On Thu, 2011-03-17 at 18:02 +0100, Eric Dumazet wrote:
> Le jeudi 17 mars 2011 à 12:55 -0400, Steven Rostedt a écrit :
> > Here, test this patch. I'm in the process of committing it now.
> > It will be two patches, one for the WARN_ON_SMP() change, the other for
> > the futex change.
> >
> > -- Steve
> >
> > diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
> > index c2c9ba0..25f1e9e 100644
> > --- a/include/asm-generic/bug.h
> > +++ b/include/asm-generic/bug.h
> > @@ -168,7 +168,7 @@ extern void warn_slowpath_null(const char *file, const int line);
> > #ifdef CONFIG_SMP
> > # define WARN_ON_SMP(x) WARN_ON(x)
> > #else
> > -# define WARN_ON_SMP(x) do { } while (0)
> > +# define WARN_ON_SMP(x) ({0;})
> > #endif
> >
>
> You meant :
>
> # define WARN_ON_SMP(x) ({x;})
>
> or
>
> # define WARN_ON_SMP(x) do { } while (x, 0)
>
> ?
>
Does if (do { } while (x, 0)) work?
And no, on SMP it should always return false. The point is, the warning
is only valid if we are on an SMP box, this is useful for spin_locks()
if (WARN_ON_SMP(!spin_is_locked(lock)))
fail();
We don't want to fail.
That spin_is_locked(lock) on !SMP returns 0 every time.
-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists