On Wed, May 10, 2017 at 8:01 PM, Yuchung Cheng <ych...@google.com> wrote: > > 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 <ych...@google.com> > Signed-off-by: Eric Dumazet <eduma...@google.com> > Signed-off-by: Soheil Hassas Yeganeh <soh...@google.com>
Acked-by: Neal Cardwell <ncardw...@google.com> neal