Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755520AbYGMSXZ (ORCPT ); Sun, 13 Jul 2008 14:23:25 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753433AbYGMSXS (ORCPT ); Sun, 13 Jul 2008 14:23:18 -0400 Received: from smtp1.linux-foundation.org ([140.211.169.13]:58986 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752665AbYGMSXR (ORCPT ); Sun, 13 Jul 2008 14:23:17 -0400 Date: Sun, 13 Jul 2008 11:22:30 -0700 From: Andrew Morton To: Krzysztof Halasa Cc: , netdev@vger.kernel.org, Stephen Hemminger , "David S. Miller" , Russell King Subject: Re: [bisected] kernel panic 2.6.22 -> 2.6.26-rc9+ Message-Id: <20080713112230.e86ba9ae.akpm@linux-foundation.org> In-Reply-To: References: <20080713013107.23f060f2.akpm@linux-foundation.org> X-Mailer: Sylpheed 2.4.8 (GTK+ 2.12.5; x86_64-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1893 Lines: 59 On Sun, 13 Jul 2008 12:48:15 +0200 Krzysztof Halasa wrote: > Andrew Morton writes: > > > (cc's added) > > (cc added) :-) > > > I guess you're referring to this: > > http://linux.derkeiler.com/Mailing-Lists/Kernel/2008-07/msg04754.html > > Right. > > >> PPP over ATM connection (Thomson/Alcatel > >> Speedtouch). It doesn't seem to occur on the same IXP4xx with Ethernet > >> or V.35 WAN, and it doesn't occur on i386 + the same Speedtouch ADSL. > >> The kernel is basically unpatched, the only extra patch applied is the > >> platform support (nothing magic). > >> > >> Generally to trigger the panic one has to request a TCP data stream > >> over that PPPoATM connection. > > I see what's wrong now: that's the ARM fls() problem, the call in > fls64() to be precise. It seems it was already discussed: the patch in > http://lkml.org/lkml/2008/5/4/233 makes the problem disappear. Ah. > Perhaps it's time to fix it definitely? I'd sugget something like this. Can you test, please? --- a/include/asm-arm/bitops.h~a +++ a/include/asm-arm/bitops.h @@ -277,9 +277,16 @@ static inline int constant_fls(int x) * the clz instruction for much better code efficiency. */ -#define fls(x) \ +#define __fls(x) \ ( __builtin_constant_p(x) ? constant_fls(x) : \ ({ int __r; asm("clz\t%0, %1" : "=r"(__r) : "r"(x) : "cc"); 32-__r; }) ) + +/* Implement fls() in C so that 64-bit args are suitably truncated */ +static inline int fls(int x) +{ + return __fls(x); +} + #define ffs(x) ({ unsigned long __t = (x); fls(__t & -__t); }) #define __ffs(x) (ffs(x) - 1) #define ffz(x) __ffs( ~(x) ) _ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/