diff options
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/tcp_output.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 2471cd4f66db..fa3c81aa4e6a 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
@@ -1356,6 +1356,10 @@ static int tcp_tso_should_defer(struct sock *sk, struct sk_buff *skb) | |||
1356 | if (limit >= sk->sk_gso_max_size) | 1356 | if (limit >= sk->sk_gso_max_size) |
1357 | goto send_now; | 1357 | goto send_now; |
1358 | 1358 | ||
1359 | /* Middle in queue won't get any more data, full sendable already? */ | ||
1360 | if ((skb != tcp_write_queue_tail(sk)) && (limit >= skb->len)) | ||
1361 | goto send_now; | ||
1362 | |||
1359 | if (sysctl_tcp_tso_win_divisor) { | 1363 | if (sysctl_tcp_tso_win_divisor) { |
1360 | u32 chunk = min(tp->snd_wnd, tp->snd_cwnd * tp->mss_cache); | 1364 | u32 chunk = min(tp->snd_wnd, tp->snd_cwnd * tp->mss_cache); |
1361 | 1365 | ||