[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20170511.213609.1826897036363570671.davem@davemloft.net>
Date: Thu, 11 May 2017 21:36:09 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: ycheng@...gle.com
Cc: netdev@...r.kernel.org, ncardwell@...gle.com, edumazet@...gle.com,
soheil@...gle.com
Subject: Re: [PATCH net] tcp: avoid fragmenting peculiar skbs in SACK
From: Yuchung Cheng <ycheng@...gle.com>
Date: Wed, 10 May 2017 17:01:27 -0700
> This patch fixes a bug in splitting an SKB during SACK
> processing. Specifically if an skb contains multiple
> packets and is only partially sacked in the higher sequences,
> tcp_match_sack_to_skb() splits the skb and marks the second fragment
> as SACKed.
>
> The current code further attempts rounding up the first fragment
> to MSS boundaries. But it misses a boundary condition when the
> rounded-up fragment size (pkt_len) is exactly skb size. Spliting
> such an skb is pointless and causses a kernel warning and aborts
> the SACK processing. This patch universally checks such over-split
> before calling tcp_fragment to prevent these unnecessary warnings.
>
> Fixes: adb92db857ee ("tcp: Make SACK code to split only at mss boundaries")
> Signed-off-by: Yuchung Cheng <ycheng@...gle.com>
> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
> Signed-off-by: Soheil Hassas Yeganeh <soheil@...gle.com>
Hehe, a 2.6.29 bug, funny that it lived for so long.
Applied and queued up for -stable, thanks!
Powered by blists - more mailing lists