| Submitter | Ilpo Järvinen |
|---|---|
| Date | Feb. 28, 2009, 2:44 p.m. |
| Message ID | <12358322831953-git-send-email-ilpo.jarvinen@helsinki.fi> |
| Download | mbox | patch |
| Permalink | /patch/23885/ |
| State | Accepted |
| Delegated to: | David Miller |
| Headers | show |
Comments
From: "Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi> Date: Sat, 28 Feb 2009 16:44:31 +0200 > From: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> > > If cur_mss grew very recently so that the previously G/TSOed skb > now fits well into a single segment it would get send up in > parts unless we calculate # of segments again. This corner-case > could happen eg. after mtu probe completes or less than > previously sack blocks are required for the opposite direction. > > Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Patch
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 3feab4d..77af7fa 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -1921,6 +1921,8 @@ int tcp_retransmit_skb(struct sock *sk, struct sk_buff *skb) if (skb->len > cur_mss) { if (tcp_fragment(sk, skb, cur_mss, cur_mss)) return -ENOMEM; /* We'll try again later. */ + } else { + tcp_init_tso_segs(sk, skb, cur_mss); } tcp_retrans_try_collapse(sk, skb, cur_mss);