On Thu, Sep 01, 2005 at 05:53:03PM -0700, David S. Miller wrote:
>
> > > + tp->lost_out -= diff;
> > > + if ((int)tp->lost_out < 0)
> > > + tp->lost_out = 0;
> >
> > These checks aren't necessary.
>
> Are you sure this can't happen if the MSS changes?
Yes, because
diff = pcount(orig_skb) - (pcount(skb) + pcount(buff))
<= pcount(orig_skb)
Now if orig_skb is marked as TCPCB_LOST, then by definition
tp->lost_out >= pcount(orig_skb)
Therefore,
tp->lost_out >= diff
It's the same reason why we don't check this for packets_out. fackets_out
is the odd one out because it's determined by the number of packets the
peer has ACKed which doesn't necessarily encompass orig_skb.
Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html