Messages in this thread |  | | From | Arnd Bergmann <> | | Subject | Re: [PATCH] bug: Fix CONFIG_BUG=n BUG_ON() | | Date | Thu, 19 Jun 2014 19:00:14 +0200 |
| |
On Thursday 19 June 2014 15:28:19 Bart Van Assche wrote: > Patch "bug: Make BUG() always stop the machine" changed the > behavior of BUG() with CONFIG_BUG=n from a no-op into an infinite > loop. Modify the definition of BUG_ON() accordingly such that the > behavior of BUG_ON(1) is identical to that of BUG(). > > Signed-off-by: Bart Van Assche <bvanassche@acm.org> > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: Josh Triplett <josh@joshtriplett.org> > Cc: Andrew Morton <akpm@linux-foundation.org> > --- > include/asm-generic/bug.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h > index 630dd23..f3241cd 100644 > --- a/include/asm-generic/bug.h > +++ b/include/asm-generic/bug.h > @@ -142,7 +142,7 @@ extern void warn_slowpath_null(const char *file, const int line); > #endif > > #ifndef HAVE_ARCH_BUG_ON > -#define BUG_ON(condition) do { if (condition) ; } while (0) > +#define BUG_ON(condition) do { } while (unlikely(condition)) > #endif > > #ifndef HAVE_ARCH_WARN_ON >
How about making it
do { if (condition) BUG(); } while (0)
That way it can be optimized for architectures that have their own BUG but not BUG_ON.
Arnd
|  |