aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_output.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r--net/ipv4/tcp_output.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index c31badfee806..730bc44dbad9 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1947,10 +1947,6 @@ static bool tcp_tso_should_defer(struct sock *sk, struct sk_buff *skb,
1947 if ((skb != tcp_write_queue_tail(sk)) && (limit >= skb->len)) 1947 if ((skb != tcp_write_queue_tail(sk)) && (limit >= skb->len))
1948 goto send_now; 1948 goto send_now;
1949 1949
1950 /* If this packet won't get more data, do not wait. */
1951 if (TCP_SKB_CB(skb)->eor)
1952 goto send_now;
1953
1954 win_divisor = READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_tso_win_divisor); 1950 win_divisor = READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_tso_win_divisor);
1955 if (win_divisor) { 1951 if (win_divisor) {
1956 u32 chunk = min(tp->snd_wnd, tp->snd_cwnd * tp->mss_cache); 1952 u32 chunk = min(tp->snd_wnd, tp->snd_cwnd * tp->mss_cache);
@@ -1999,7 +1995,8 @@ static bool tcp_tso_should_defer(struct sock *sk, struct sk_buff *skb,
1999 } 1995 }
2000 1996
2001 /* If this packet won't get more data, do not wait. */ 1997 /* If this packet won't get more data, do not wait. */
2002 if (TCP_SKB_CB(skb)->tcp_flags & TCPHDR_FIN) 1998 if ((TCP_SKB_CB(skb)->tcp_flags & TCPHDR_FIN) ||
1999 TCP_SKB_CB(skb)->eor)
2003 goto send_now; 2000 goto send_now;
2004 2001
2005 return true; 2002 return true;