public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@elte.hu>, Petr Tesarik <ptesarik@suse.cz>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] x86: remove unneeded endless loop in BUG()
Date: Thu, 19 Feb 2009 12:47:01 -0800	[thread overview]
Message-ID: <499DC545.2030402@goop.org> (raw)
In-Reply-To: <499DB8BA.3050708@zytor.com>

H. Peter Anvin wrote:
> For that to happen, it would have to move the asm volatile relative to 
> the __builtin_trap(), which seems slightly unlikely -- are there any 
> cases at which this has been known to happen, or is that conjecture on 
> your part?

There's no reason to expect an "asm volatile" to stay put; the 
"volatile" has nothing to do with preventing code motion.  The only way 
to make an asm stick in one place is with data dependencies, and I'm not 
sure what the dependency for __builtin_trap might be.  I'm guessing its 
a "memory" clobber, but that's pure guesswork.

> It would be more of a "right thing" to do this with a label on the 
> __builtin_trap(), but the problem with that labels have function scope 
> even if they occur inside a block.

No, you can declare them local (__label__ foo).  But gcc will happily do 
crazy/crappy things with them if you don't actually end up gotoing them 
(even indirectly).  I've had a couple of go-rounds with the fine helpful 
gcc folks on this very issue...

It would be worth checking the archives from about the time I did the 
generic BUG stuff; around dec-jan 2006-7, I think.

    J

  reply	other threads:[~2009-02-19 20:47 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-19 18:38 [PATCH] x86: remove unneeded endless loop in BUG() Petr Tesarik
2009-02-19 18:40 ` H. Peter Anvin
2009-02-19 18:59 ` Ingo Molnar
2009-02-19 19:53   ` H. Peter Anvin
2009-02-19 20:47     ` Jeremy Fitzhardinge [this message]
2009-02-19 20:48       ` H. Peter Anvin
2009-02-20  8:28         ` Petr Tesarik
2009-02-19 20:29   ` H. Peter Anvin
2009-02-19 20:32     ` 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=499DC545.2030402@goop.org \
    --to=jeremy@goop.org \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=ptesarik@suse.cz \
    /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