[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20090529.150241.92282161.davem@davemloft.net>
Date: Fri, 29 May 2009 15:02:41 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: ilpo.jarvinen@...sinki.fi
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH net-next] tcp: fix loop in ofo handling code and reduce
its complexity
From: "Ilpo Järvinen" <ilpo.jarvinen@...sinki.fi>
Date: Fri, 29 May 2009 16:03:45 +0300 (EEST)
> Somewhat luckily, I was looking into these parts with very fine
> comb because I've made somewhat similar changes on the same
> area (conflicts that arose weren't that lucky though). The loop
> was very much overengineered recently in commit 915219441d566
> (tcp: Use SKB queue and list helpers instead of doing it
> by-hand), while it basically just wants to know if there are
> skbs after 'skb'.
>
> Also it got broken because skb1 = skb->next got translated into
> skb1 = skb1->next (though abstracted) improperly. Note that
> 'skb1' is pointing to previous sk_buff than skb or NULL if at
> head. Two things went wrong:
> - We'll kfree 'skb' on the first iteration instead of the
> skbuff following 'skb' (it would require required SACK reneging
> to recover I think).
> - The list head case where 'skb1' is NULL is checked too early
> and the loop won't execute whereas it previously did.
>
> Conclusion, mostly revert the recent changes which makes the
> cset very messy looking but using proper accessor in the
> previous-like version.
>
> The effective changes against the original can be viewed with:
> git-diff 915219441d566f1da0caa0e262be49b666159e17^ \
> net/ipv4/tcp_input.c | sed -n -e '57,70 p'
>
> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@...sinki.fi>
Applied, thanks a lot for catching this!
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists