From 6f11aec96fc0814c5f49681042a5e1f93c2155cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Date: Sat, 28 Feb 2009 04:44:29 +0000 Subject: [PATCH] --- yaml --- r: 134975 b: refs/heads/master c: 62ad27619cbcf23fb8581ae72f3806c1d90a861d h: refs/heads/master i: 134973: 5e165da2a01ee00032f7c05c8fae991c88a9d309 134971: 917162f8edd032a6792d98d42357043a2841dd42 134967: b2cd29b28182f0b2e37b8cc025c6590c4c16356b 134959: 01c8548fa1fe165d67b56a4aa84d1084e9f87467 134943: 3a14e98b621c862948a106770160e25a62ed869d 134911: f503982e3df2baf7d4d80dd52dcede3d877a3160 v: v3 --- [refs] | 2 +- trunk/net/ipv4/tcp_output.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 73c9838d3426..8ea312dc32d8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 59a08cba6a604a265e45e9b970e372554cf46627 +refs/heads/master: 62ad27619cbcf23fb8581ae72f3806c1d90a861d diff --git a/trunk/net/ipv4/tcp_output.c b/trunk/net/ipv4/tcp_output.c index 2471cd4f66db..fa3c81aa4e6a 100644 --- a/trunk/net/ipv4/tcp_output.c +++ b/trunk/net/ipv4/tcp_output.c @@ -1356,6 +1356,10 @@ static int tcp_tso_should_defer(struct sock *sk, struct sk_buff *skb) if (limit >= sk->sk_gso_max_size) goto send_now; + /* Middle in queue won't get any more data, full sendable already? */ + if ((skb != tcp_write_queue_tail(sk)) && (limit >= skb->len)) + goto send_now; + if (sysctl_tcp_tso_win_divisor) { u32 chunk = min(tp->snd_wnd, tp->snd_cwnd * tp->mss_cache);