From: David Miller <davem@davemloft.net>
To: avivgnet@gmail.com
Cc: mchan@broadcom.com, joy@debian.org, billfink@mindspring.com,
bhutchings@solarflare.com, netdev@vger.kernel.org,
mirrors@debian.org
Subject: Re: bnx2_poll panicking kernel
Date: Thu, 10 Jul 2008 03:09:20 -0700 (PDT) [thread overview]
Message-ID: <20080710.030920.141237050.davem@davemloft.net> (raw)
In-Reply-To: <3000d2e90807100245j74a11b97q7d01f9f0b94dfbe@mail.gmail.com>
From: "Aviv Greenberg" <avivgnet@gmail.com>
Date: Thu, 10 Jul 2008 12:45:54 +0300
> On Thu, Jul 10, 2008 at 02:46, David Miller <davem@davemloft.net> wrote:
> >
> > So it has to be something else.
>
> What mechanism prevents the clone from happening between
> the skb_clone() and skb_split() calls in tcp_fragment?
The TCP packet is guarenteed to be cloned when the driver
first gets it. That's fundamentally how TCP's retransmission
handling works.
It makes a clone, and sends it down to the driver.
You can't make clones of clones, so in such situations
code makes a full copy instead.
TCP always had the whole state of the retransmit queue,
and thus the base SKB state, locked when it makes all
of these operations.
When TCP is looking at an SKB on the retransmit queue it can only go
from cloned to uncloned, not the other way around.
> Maybe there's a path that doesn't take a lock...
I doubt it.
I think it's some piece of code not making careful enough
checks on the way down to an SKB modification.
next prev parent reply other threads:[~2008-07-10 10:09 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-16 12:57 bnx2_poll panicking kernel Josip Rodin
2008-06-16 14:04 ` Ben Hutchings
2008-06-16 15:52 ` Michael Chan
2008-06-16 19:13 ` Josip Rodin
2008-06-16 21:38 ` Josip Rodin
2008-06-16 21:48 ` Josip Rodin
2008-06-16 23:45 ` Michael Chan
2008-06-17 22:37 ` Josip Rodin
2008-06-17 22:47 ` Michael Chan
2008-06-21 11:18 ` Josip Rodin
2008-06-21 15:34 ` Bill Fink
2008-06-21 16:11 ` Michael Chan
2008-06-23 18:04 ` Josip Rodin
2008-06-23 21:36 ` Josip Rodin
2008-06-23 22:48 ` Michael Chan
2008-06-24 22:58 ` Michael Chan
2008-06-25 0:04 ` David Miller
2008-06-26 11:01 ` Josip Rodin
2008-06-26 18:04 ` Michael Chan
2008-07-09 16:46 ` Josip Rodin
2008-07-09 16:57 ` Michael Chan
2008-07-09 23:46 ` David Miller
2008-07-10 9:45 ` Aviv Greenberg
2008-07-10 10:09 ` David Miller [this message]
2008-07-10 21:00 ` Michael Chan
2008-07-10 21:00 ` David Miller
2008-07-10 21:23 ` Josip Rodin
2008-07-10 21:38 ` Michael Chan
2008-07-10 22:00 ` Josip Rodin
2008-07-10 22:26 ` Michael Chan
2008-07-10 22:31 ` Josip Rodin
2008-07-10 23:20 ` David Miller
2008-07-11 9:24 ` Josip Rodin
2008-07-11 9:56 ` David Miller
2008-07-11 12:19 ` Patrick McHardy
2008-07-12 9:49 ` Jarek Poplawski
2008-07-12 13:21 ` Jarek Poplawski
2008-07-14 15:27 ` Patrick McHardy
2008-07-14 17:20 ` Jarek Poplawski
2008-07-14 17:25 ` Jarek Poplawski
2008-07-14 20:21 ` Josip Rodin
2008-07-14 21:22 ` Jarek Poplawski
2008-07-14 21:26 ` Josip Rodin
2008-07-14 21:48 ` Jarek Poplawski
2008-07-17 21:30 ` Josip Rodin
2008-07-17 21:44 ` David Miller
2008-07-18 5:12 ` Jarek Poplawski
2008-08-02 12:28 ` bad htb_{en,re}queue return codes causing corrupt data in drivers [was Re: bnx2_poll panicking kernel] Josip Rodin
2008-08-03 7:06 ` bad htb_{en,re}queue return codes causing corrupt data in drivers David Miller
2008-07-14 22:05 ` bnx2_poll panicking kernel Jarek Poplawski
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=20080710.030920.141237050.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=avivgnet@gmail.com \
--cc=bhutchings@solarflare.com \
--cc=billfink@mindspring.com \
--cc=joy@debian.org \
--cc=mchan@broadcom.com \
--cc=mirrors@debian.org \
--cc=netdev@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).