diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 87fe44197aa1f446b2880cb1c83218f7318ba251..432dc9af117203d3d4b2b0ee4241dac26f510b72 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -2519,6 +2519,7 @@ void tcp_write_queue_purge(struct sock *sk) sk_mem_reclaim(sk); tcp_clear_all_retrans_hints(tcp_sk(sk)); tcp_sk(sk)->packets_out = 0; + inet_csk(sk)->icsk_backoff = 0; } int tcp_disconnect(struct sock *sk, int flags) @@ -2567,7 +2568,6 @@ int tcp_disconnect(struct sock *sk, int flags) tp->write_seq += tp->max_window + 2; if (tp->write_seq == 0) tp->write_seq = 1; - icsk->icsk_backoff = 0; tp->snd_cwnd = 2; icsk->icsk_probes_out = 0; tp->snd_ssthresh = TCP_INFINITE_SSTHRESH;