diff options
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r-- | net/ipv4/tcp_output.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 92fde8d1aa82..7c83cb8bf137 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
@@ -65,6 +65,9 @@ int sysctl_tcp_base_mss __read_mostly = TCP_BASE_MSS; | |||
65 | /* By default, RFC2861 behavior. */ | 65 | /* By default, RFC2861 behavior. */ |
66 | int sysctl_tcp_slow_start_after_idle __read_mostly = 1; | 66 | int sysctl_tcp_slow_start_after_idle __read_mostly = 1; |
67 | 67 | ||
68 | unsigned int sysctl_tcp_notsent_lowat __read_mostly = UINT_MAX; | ||
69 | EXPORT_SYMBOL(sysctl_tcp_notsent_lowat); | ||
70 | |||
68 | static bool tcp_write_xmit(struct sock *sk, unsigned int mss_now, int nonagle, | 71 | static bool tcp_write_xmit(struct sock *sk, unsigned int mss_now, int nonagle, |
69 | int push_one, gfp_t gfp); | 72 | int push_one, gfp_t gfp); |
70 | 73 | ||
@@ -1628,7 +1631,7 @@ static bool tcp_tso_should_defer(struct sock *sk, struct sk_buff *skb) | |||
1628 | 1631 | ||
1629 | /* If a full-sized TSO skb can be sent, do it. */ | 1632 | /* If a full-sized TSO skb can be sent, do it. */ |
1630 | if (limit >= min_t(unsigned int, sk->sk_gso_max_size, | 1633 | if (limit >= min_t(unsigned int, sk->sk_gso_max_size, |
1631 | sk->sk_gso_max_segs * tp->mss_cache)) | 1634 | tp->xmit_size_goal_segs * tp->mss_cache)) |
1632 | goto send_now; | 1635 | goto send_now; |
1633 | 1636 | ||
1634 | /* Middle in queue won't get any more data, full sendable already? */ | 1637 | /* Middle in queue won't get any more data, full sendable already? */ |
@@ -2670,7 +2673,7 @@ struct sk_buff *tcp_make_synack(struct sock *sk, struct dst_entry *dst, | |||
2670 | int tcp_header_size; | 2673 | int tcp_header_size; |
2671 | int mss; | 2674 | int mss; |
2672 | 2675 | ||
2673 | skb = alloc_skb(MAX_TCP_HEADER + 15, sk_gfp_atomic(sk, GFP_ATOMIC)); | 2676 | skb = sock_wmalloc(sk, MAX_TCP_HEADER + 15, 1, GFP_ATOMIC); |
2674 | if (unlikely(!skb)) { | 2677 | if (unlikely(!skb)) { |
2675 | dst_release(dst); | 2678 | dst_release(dst); |
2676 | return NULL; | 2679 | return NULL; |
@@ -2814,6 +2817,8 @@ void tcp_connect_init(struct sock *sk) | |||
2814 | 2817 | ||
2815 | if (likely(!tp->repair)) | 2818 | if (likely(!tp->repair)) |
2816 | tp->rcv_nxt = 0; | 2819 | tp->rcv_nxt = 0; |
2820 | else | ||
2821 | tp->rcv_tstamp = tcp_time_stamp; | ||
2817 | tp->rcv_wup = tp->rcv_nxt; | 2822 | tp->rcv_wup = tp->rcv_nxt; |
2818 | tp->copied_seq = tp->rcv_nxt; | 2823 | tp->copied_seq = tp->rcv_nxt; |
2819 | 2824 | ||