Subject: Re: bnx2_poll panicking kernel

From: "Michael Chan" <[email-masked]>
Date: Wed, 09 Jul 2008 09:57:05 -0700

On Wed, 2008-07-09 at 09:46 -0700, Josip Rodin wrote:
> On Thu, Jun 26, 2008 at 11:04:48AM -0700, Michael Chan wrote:
> > 1. SKB is unchanged and the clone bit is set.
> >
> > 2. skb_shared_info(SKB) has dataref 0x00010002 and these fields are
> > changed:
> >
> >    nr_frags changed from n to 1
> >    gso_size changed from 0x5a8 to 0
> >    gso_type changed from 1 (TCP_V4) to 0
> >    gso_segs changed from m to 1
> >    1 of the frags' length is modified to split the TSO packet into 1
> > segment
> >
> > I think this is consistent with what David said about tso_fragment()
> > splitting the cloned TSO SKB into 2.
> 
> Okay, thanks, can you tell me if the previous patch is a proper fix or just
> a workaround?

That was just a debug patch.  The proper fix needs to go into
tso_fragment() as David outlined earlier.

> 
> Recently we've been seeing rsync errors with some of the sites which used to
> be pretty fast - the connection unexpectedly closes, or it times out.
> Something is still fishy about it...
> 

The tso_fragment() issue will always lead to a crash in the bnx2 driver
(before applying any of the debug patches I provided).  If it doesn't
crash, it's probably something else.