aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_input.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/tcp_input.c')
-rw-r--r--net/ipv4/tcp_input.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index b35badf53aa5..71d456148de7 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3831,6 +3831,7 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
3831 tcp_parse_options(skb, &tp->rx_opt, 0); 3831 tcp_parse_options(skb, &tp->rx_opt, 0);
3832 3832
3833 if (th->ack) { 3833 if (th->ack) {
3834 struct inet_connection_sock *icsk;
3834 /* rfc793: 3835 /* rfc793:
3835 * "If the state is SYN-SENT then 3836 * "If the state is SYN-SENT then
3836 * first check the ACK bit 3837 * first check the ACK bit
@@ -3956,7 +3957,11 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
3956 sk_wake_async(sk, 0, POLL_OUT); 3957 sk_wake_async(sk, 0, POLL_OUT);
3957 } 3958 }
3958 3959
3959 if (sk->sk_write_pending || tp->defer_accept || inet_csk(sk)->icsk_ack.pingpong) { 3960 icsk = inet_csk(sk);
3961
3962 if (sk->sk_write_pending ||
3963 icsk->icsk_accept_queue.rskq_defer_accept ||
3964 icsk->icsk_ack.pingpong) {
3960 /* Save one ACK. Data will be ready after 3965 /* Save one ACK. Data will be ready after
3961 * several ticks, if write_pending is set. 3966 * several ticks, if write_pending is set.
3962 * 3967 *
@@ -3965,8 +3970,8 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
3965 * to stand against the temptation 8) --ANK 3970 * to stand against the temptation 8) --ANK
3966 */ 3971 */
3967 inet_csk_schedule_ack(sk); 3972 inet_csk_schedule_ack(sk);
3968 inet_csk(sk)->icsk_ack.lrcvtime = tcp_time_stamp; 3973 icsk->icsk_ack.lrcvtime = tcp_time_stamp;
3969 inet_csk(sk)->icsk_ack.ato = TCP_ATO_MIN; 3974 icsk->icsk_ack.ato = TCP_ATO_MIN;
3970 tcp_incr_quickack(sk); 3975 tcp_incr_quickack(sk);
3971 tcp_enter_quickack_mode(sk); 3976 tcp_enter_quickack_mode(sk);
3972 inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK, 3977 inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK,