public inbox for linux-arch@vger.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Arnd Bergmann <arnd@arndb.de>
Cc: "Catalin Marinas" <Catalin.Marinas@arm.com>,
	"Linux-sh list" <linux-sh@vger.kernel.org>,
	"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
	"Chen Gang" <gang.chen@asianux.com>,
	"Heiko Carstens" <heiko.carstens@de.ibm.com>,
	"paulus@samba.org" <paulus@samba.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"Michel Lespinasse" <walken@google.com>,
	"Hans-Christian Egtvedt" <egtvedt@samfundet.no>,
	Linux-Arch <linux-arch@vger.kernel.org>,
	linux-s390@vger.kernel.org,
	"Russell King - ARM Linux" <linux@arm.linux.org.uk>,
	"Yoshinori Sato" <ysato@users.sourceforge.jp>,
	"Richard Weinberger" <richard@nod.at>,
	"Helge Deller" <deller@gmx.de>,
	"the arch/x86 maintainers" <x86@kernel.org>,
	"James E.J. Bottomley" <jejb@parisc-linux.org>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"Geert Uytterhoeven" <geert@linux-m68k.org>,
	"Frederic Weisbecker" <fweisbec@gmail.com>,
	"Paul McKenney" <paulmck@linux.vnet.ibm.com>
Subject: Re: [PATCH] arch: configuration, deleting 'CONFIG_BUG' since always need it.
Date: Thu, 23 May 2013 03:09:50 -0700	[thread overview]
Message-ID: <878v369fdd.fsf@xmission.com> (raw)
In-Reply-To: <201305231139.38233.arnd@arndb.de> (Arnd Bergmann's message of "Thu, 23 May 2013 11:39:37 +0200")

Arnd Bergmann <arnd@arndb.de> writes:

> On Thursday 23 May 2013, Geert Uytterhoeven wrote:
>> > The problem is: trying to fix that will mean the result is a larger
>> > kernel than if you just do the usual arch-implemented thing of placing
>> > an defined faulting instruction at the BUG() site - which defeats the
>> > purpose of turning off CONFIG_BUG.
>> 
>> Is __builtin_unreachable() working well these days?
>> 
>
> Hmm, I just tried the trivial patch below, which seemed to do the right thing.
> Needs a little more investigation, but that might actually be the correct
> solution. I thought that at some point __builtin_unreachable() was the same
> as "do {} while (1)", but this is not the case with the gcc I was using --
> it just tells gcc that we don't expect to ever get here.

Yes.

We already have this abstracted in compiler.h as the macro unreachable,
so the slight modification of your patch below should handle this case.

For compilers without __builtin_unreachable() unreachable() expands to
do {} while(1) but an infinite loop seems reasonable and preserves the
semantics of the code, unlike the current noop that is do {} while(0).

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
index 7d10f96..9afff7d 100644
--- a/include/asm-generic/bug.h
+++ b/include/asm-generic/bug.h
@@ -108,11 +108,11 @@ extern void warn_slowpath_null(const char *file, const int line);
 
 #else /* !CONFIG_BUG */
 #ifndef HAVE_ARCH_BUG
-#define BUG() do {} while(0)
+#define BUG() unreachable ()
 #endif
 
 #ifndef HAVE_ARCH_BUG_ON
-#define BUG_ON(condition) do { if (condition) ; } while(0)
+#define BUG_ON(condition) do { if (condition) unreachable(); } while(0)
 #endif
 
 #ifndef HAVE_ARCH_WARN_ON

  parent reply	other threads:[~2013-05-23 10:09 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-23  7:57 [PATCH] arch: configuration, deleting 'CONFIG_BUG' since always need it Chen Gang
2013-05-23  7:57 ` Chen Gang
2013-05-23  8:40 ` Geert Uytterhoeven
2013-05-23  8:54   ` Arnd Bergmann
     [not found]   ` <CAMuHMdU7QuzgmWCH145p8PVebBzPo8DBAvbY+0AZa2cmGXmRHw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-05-23  9:05     ` Russell King - ARM Linux
2013-05-23  9:12       ` Geert Uytterhoeven
2013-05-23  9:39         ` Arnd Bergmann
     [not found]           ` <201305231139.38233.arnd-r2nGTMty4D4@public.gmane.org>
2013-05-23 10:04             ` Russell King - ARM Linux
2013-05-23 10:41               ` Chen Gang
2013-05-23 10:59               ` Arnd Bergmann
     [not found]                 ` <201305231259.43750.arnd-r2nGTMty4D4@public.gmane.org>
2013-05-23 11:19                   ` Chen Gang
2013-05-23 11:24                 ` Russell King - ARM Linux
     [not found]                   ` <20130523112401.GO18614-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-05-23 12:09                     ` Arnd Bergmann
2013-05-23 12:50                       ` Russell King - ARM Linux
2013-05-23 14:10                         ` Geert Uytterhoeven
2013-05-24  2:13                           ` Chen Gang
2013-05-24  4:17                             ` Chen Gang
2013-05-26  4:43                               ` [PATCH v2] arch: configuration issue, random return value when disable 'CONFIG_BUG' Chen Gang
2013-05-28  8:19               ` [PATCH] arch: configuration, deleting 'CONFIG_BUG' since always need it Ingo Molnar
2013-05-28 10:25                 ` Chen Gang
2013-05-28 14:49                 ` Arnd Bergmann
     [not found]                 ` <20130528081910.GA29557-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-05-28 14:55                   ` H. Peter Anvin
2013-05-28 15:43                     ` Arnd Bergmann
     [not found]                       ` <201305281743.52649.arnd-r2nGTMty4D4@public.gmane.org>
2013-05-28 16:06                         ` H. Peter Anvin
     [not found]                           ` <51A4D618.3080208-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2013-05-28 17:20                             ` Arnd Bergmann
2013-05-23 10:09           ` Eric W. Biederman [this message]
     [not found]             ` <878v369fdd.fsf-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2013-05-23 10:29               ` Russell King - ARM Linux
2013-05-23 10:05         ` Chen Gang
2013-05-24  5:59 ` Eric W. Biederman

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=878v369fdd.fsf@xmission.com \
    --to=ebiederm@xmission.com \
    --cc=Catalin.Marinas@arm.com \
    --cc=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=deller@gmx.de \
    --cc=egtvedt@samfundet.no \
    --cc=fweisbec@gmail.com \
    --cc=gang.chen@asianux.com \
    --cc=geert@linux-m68k.org \
    --cc=heiko.carstens@de.ibm.com \
    --cc=hpa@zytor.com \
    --cc=jejb@parisc-linux.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mingo@redhat.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=paulus@samba.org \
    --cc=richard@nod.at \
    --cc=walken@google.com \
    --cc=x86@kernel.org \
    --cc=ysato@users.sourceforge.jp \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox