From patchwork Tue Nov 25 17:54:32 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Arjan van de Ven X-Patchwork-Id: 10730 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id E3D2EDDDF5 for ; Wed, 26 Nov 2008 04:53:38 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752523AbYKYRxf (ORCPT ); Tue, 25 Nov 2008 12:53:35 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752339AbYKYRxe (ORCPT ); Tue, 25 Nov 2008 12:53:34 -0500 Received: from casper.infradead.org ([85.118.1.10]:41154 "EHLO casper.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752046AbYKYRxd convert rfc822-to-8bit (ORCPT ); Tue, 25 Nov 2008 12:53:33 -0500 Received: from [192.102.209.1] (helo=localhost.localdomain) by casper.infradead.org with esmtpsa (Exim 4.69 #1 (Red Hat Linux)) id 1L526N-00007H-Ev; Tue, 25 Nov 2008 17:53:31 +0000 Date: Tue, 25 Nov 2008 09:54:32 -0800 From: Arjan van de Ven To: Ben Hutchings Cc: netdev@vger.kernel.org Subject: Re: [PATCH] net: make skb_truesize_bug() call WARN() Message-ID: <20081125095432.04d73b01@infradead.org> In-Reply-To: <1227631323.3109.7.camel@achroite> References: <20081125083250.2ad7d75d@infradead.org> <1227631323.3109.7.camel@achroite> Organization: Intel X-Mailer: Claws Mail 3.6.0 (GTK+ 2.14.4; i386-redhat-linux-gnu) Mime-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org See http://www.infradead.org/rpr.html Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Tue, 25 Nov 2008 16:42:03 +0000 Ben Hutchings wrote: > On Tue, 2008-11-25 at 08:32 -0800, Arjan van de Ven wrote: > > From 97a8ab520c378568e172c555a156b469137a3828 Mon Sep 17 00:00:00 > > 2001 From: Arjan van de Ven > > Date: Tue, 25 Nov 2008 08:30:04 -0800 > > Subject: [PATCH] net: make skb_truesize_bug() call WARN() > > > > The truesize message check is important enough to make it print > > "BUG" to the user console... lets also make it important enough to > > spit a backtrace/module list etc so that kerneloops.org can track > > them. > > > > Signed-off-by: Arjan van de Ven > > --- > > net/core/skbuff.c | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/net/core/skbuff.c b/net/core/skbuff.c > > index 391be91..1a1f4d1 100644 > > --- a/net/core/skbuff.c > > +++ b/net/core/skbuff.c > > @@ -149,7 +149,7 @@ void skb_under_panic(struct sk_buff *skb, int > > sz, void *here) > > void skb_truesize_bug(struct sk_buff *skb) > > { > > - printk(KERN_ERR "SKB BUG: Invalid truesize (%u) " > > + WARN(1, KERN_ERR "SKB BUG: Invalid truesize (%u) " > > "len=%u, sizeof(sk_buff)=%Zd\n", > > skb->truesize, skb->len, sizeof(struct sk_buff)); > > } > > The bug reports I've seen (with my Debian hat on, not relating to > sfc) show that configurations that trigger this warning are likely to > trigger many times over and there's nothing the user can do about > it. So by all means do make the warning more obvious, but please > make it WARN_ON_ONCE and then use printk qualified by net_ratelimit(). > if there's no value in those subsequent printk's.. why not just this? From 97a8ab520c378568e172c555a156b469137a3828 Mon Sep 17 00:00:00 2001 From: Arjan van de Ven Date: Tue, 25 Nov 2008 08:30:04 -0800 Subject: [PATCH] net: make skb_truesize_bug() call WARN() The truesize message check is important enough to make it print "BUG" to the user console... lets also make it important enough to spit a backtrace/module list etc so that kerneloops.org can track them. Signed-off-by: Arjan van de Ven --- net/core/skbuff.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 391be91..1a1f4d1 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -149,7 +149,7 @@ void skb_under_panic(struct sk_buff *skb, int sz, void *here) void skb_truesize_bug(struct sk_buff *skb) { - printk(KERN_ERR "SKB BUG: Invalid truesize (%u) " + WARN_ONCE(1, KERN_ERR "SKB BUG: Invalid truesize (%u) " "len=%u, sizeof(sk_buff)=%Zd\n", skb->truesize, skb->len, sizeof(struct sk_buff)); }