From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932164AbXGYRVK (ORCPT ); Wed, 25 Jul 2007 13:21:10 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1765490AbXGYRUx (ORCPT ); Wed, 25 Jul 2007 13:20:53 -0400 Received: from zeniv.linux.org.uk ([195.92.253.2]:47587 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1765448AbXGYRUw (ORCPT ); Wed, 25 Jul 2007 13:20:52 -0400 Date: Wed, 25 Jul 2007 18:19:56 +0100 From: Al Viro To: Linus Torvalds Cc: David Miller , jeremy@goop.org, hpa@zytor.com, kaos@ocs.com.au, xyzzy@speakeasy.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org Subject: Re: [PATCH][RFC] getting rid of stupid loop in BUG() Message-ID: <20070725171956.GF27237@ftp.linux.org.uk> References: <21803.1185331847@ocs10w.ocs.com.au> <46A6DB04.3000003@zytor.com> <46A6ECB7.7090208@goop.org> <20070724.232914.56812376.davem@davemloft.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 25, 2007 at 09:56:12AM -0700, Linus Torvalds wrote: > > > On Tue, 24 Jul 2007, David Miller wrote: > > > > From: Jeremy Fitzhardinge > > Date: Tue, 24 Jul 2007 23:24:55 -0700 > > > > > H. Peter Anvin wrote: > > > > How far back was __builtin_trap() supported? > > > > > > I think its relatively recent, but it might be within our supported > > > compiler window. > > > > I'm pretty sure it is. > > .. and I'm pretty sure it's immaterial. > > We don't just do the "ud2" instruction - we also do the file and line > number information after it. Which means that __builtin_trap() is useless. > > So we might as well keep the loop, since both are two-byte instructions > that tell gcc that it will never continue. Umm... Actually, we might be able to do something like { l: __builtin_trap(); static struct ... v __attribute__((section(...))) = { &&l, n, file }; } except that it would need block-local labels and those are ugly (so's &&