.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
---|
1 | 2 | /* |
---|
2 | 3 | * net/dccp/timer.c |
---|
3 | 4 | * |
---|
4 | 5 | * An implementation of the DCCP protocol |
---|
5 | 6 | * Arnaldo Carvalho de Melo <acme@conectiva.com.br> |
---|
6 | | - * |
---|
7 | | - * This program is free software; you can redistribute it and/or |
---|
8 | | - * modify it under the terms of the GNU General Public License |
---|
9 | | - * as published by the Free Software Foundation; either version |
---|
10 | | - * 2 of the License, or (at your option) any later version. |
---|
11 | 7 | */ |
---|
12 | 8 | |
---|
13 | 9 | #include <linux/dccp.h> |
---|
.. | .. |
---|
89 | 85 | struct inet_connection_sock *icsk = inet_csk(sk); |
---|
90 | 86 | |
---|
91 | 87 | /* |
---|
92 | | - * More than than 4MSL (8 minutes) has passed, a RESET(aborted) was |
---|
| 88 | + * More than 4MSL (8 minutes) has passed, a RESET(aborted) was |
---|
93 | 89 | * sent, no need to retransmit, this sock is dead. |
---|
94 | 90 | */ |
---|
95 | 91 | if (dccp_write_timeout(sk)) |
---|
.. | .. |
---|
180 | 176 | bh_lock_sock(sk); |
---|
181 | 177 | if (sock_owned_by_user(sk)) { |
---|
182 | 178 | /* Try again later. */ |
---|
183 | | - icsk->icsk_ack.blocked = 1; |
---|
184 | 179 | __NET_INC_STATS(sock_net(sk), LINUX_MIB_DELAYEDACKLOCKED); |
---|
185 | 180 | sk_reset_timer(sk, &icsk->icsk_delack_timer, |
---|
186 | 181 | jiffies + TCP_DELACK_MIN); |
---|
.. | .. |
---|
199 | 194 | icsk->icsk_ack.pending &= ~ICSK_ACK_TIMER; |
---|
200 | 195 | |
---|
201 | 196 | if (inet_csk_ack_scheduled(sk)) { |
---|
202 | | - if (!icsk->icsk_ack.pingpong) { |
---|
| 197 | + if (!inet_csk_in_pingpong_mode(sk)) { |
---|
203 | 198 | /* Delayed ACK missed: inflate ATO. */ |
---|
204 | 199 | icsk->icsk_ack.ato = min(icsk->icsk_ack.ato << 1, |
---|
205 | 200 | icsk->icsk_rto); |
---|
.. | .. |
---|
207 | 202 | /* Delayed ACK missed: leave pingpong mode and |
---|
208 | 203 | * deflate ATO. |
---|
209 | 204 | */ |
---|
210 | | - icsk->icsk_ack.pingpong = 0; |
---|
| 205 | + inet_csk_exit_pingpong_mode(sk); |
---|
211 | 206 | icsk->icsk_ack.ato = TCP_ATO_MIN; |
---|
212 | 207 | } |
---|
213 | 208 | dccp_send_ack(sk); |
---|
.. | .. |
---|
220 | 215 | |
---|
221 | 216 | /** |
---|
222 | 217 | * dccp_write_xmitlet - Workhorse for CCID packet dequeueing interface |
---|
| 218 | + * @data: Socket to act on |
---|
| 219 | + * |
---|
223 | 220 | * See the comments above %ccid_dequeueing_decision for supported modes. |
---|
224 | 221 | */ |
---|
225 | 222 | static void dccp_write_xmitlet(unsigned long data) |
---|