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.
next prev parent 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®