mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Miller <davem@davemloft.net>
To: buytenh@wantstofly.org
Cc: mike@it-loops.com, afleming@freescale.com,
	linux-kernel@vger.kernel.org, rjw@sisk.pl
Subject: Re: [BUG] 2.6.30-rc4: Kernel BUG under network load with gianfar
Date: Thu, 21 May 2009 15:24:39 -0700 (PDT)	[thread overview]
Message-ID: <20090521.152439.79009648.davem@davemloft.net> (raw)
In-Reply-To: <20090520214734.GA11277@mail.wantstofly.org>

From: Lennert Buytenhek <buytenh@wantstofly.org>
Date: Wed, 20 May 2009 23:47:34 +0200

> gianfar puts skbuffs that are in the rx ring back onto the recycle
> list if there was a receive error, but this breaks the following
> invariant: that all skbuffs on the recycle list have skb->data =
> skb->head + NET_SKB_PAD (NET_SKB_PAD being 32 for you).
> 
> In this case, the skb's ->data will be skb->head + RXBUF_ALIGNMENT
> (where RXBUF_ALIGNMENT is 64) when it is put onto the recycle list.
> And when gfar_new_skb() picks this skb off the recycle list again,
> it'll do:
> 
>         alignamount = RXBUF_ALIGNMENT -
>                 (((unsigned long) skb->data) & (RXBUF_ALIGNMENT - 1));
> 
>         /* We need the data buffer to be aligned properly.  We will reserve
>          * as many bytes as needed to align the data properly
>          */
>         skb_reserve(skb, alignamount);
> 
> So now skb->data will be skb->head + 128, and there won't be enough
> space between skb->head and skb->end to hold a full-sized packet.
> 
> Something like the patch below would fix it.

Let me know when a final, tested, version of this patch is available
and please make sure it makes it to netdev@vger.kernel.org

Thanks.

  reply	other threads:[~2009-05-21 22:24 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-03 13:36 Michael Guntsche
2009-05-05 19:27 ` Andrew Morton
2009-05-05 20:29   ` Michael Guntsche
2009-05-12 22:34     ` Michael Guntsche
2009-05-12 22:48       ` Andrew Morton
2009-05-20 21:47 ` Lennert Buytenhek
2009-05-21 22:24   ` David Miller [this message]
2009-05-22 14:27     ` Michael Guntsche
2009-05-22 17:18       ` Andy Fleming
2009-05-22 17:59         ` Michael Guntsche

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=20090521.152439.79009648.davem@davemloft.net \
    --to=davem@davemloft.net \
    --cc=afleming@freescale.com \
    --cc=buytenh@wantstofly.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mike@it-loops.com \
    --cc=rjw@sisk.pl \
    /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

all inboxes | Powered by JetHome®