Eric Dumazet
5f63431093
tcp: remove poll() flakes with FastOpen
...
[ Upstream commit 0f9fa831aecfc297b7b45d4f046759bcefcf87f0 ]
When using TCP FastOpen for an active session, we send one wakeup event
from tcp_finish_connect(), right before the data eventually contained in
the received SYNACK is queued to sk->sk_receive_queue.
This means that depending on machine load or luck, poll() users
might receive POLLOUT events instead of POLLIN|POLLOUT
To fix this, we need to move the call to sk->sk_state_change()
after the (optional) call to tcp_rcv_fastopen_synack()
Signed-off-by: Eric Dumazet <edumazet@google.com >
Acked-by: Yuchung Cheng <ycheng@google.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2018-03-24 11:00:12 +01:00
..
2018-03-18 11:18:54 +01:00
2017-08-12 19:31:22 -07:00
2017-11-15 15:53:15 +01:00
2018-01-31 12:55:55 +01:00
2017-11-18 11:22:22 +01:00
2015-07-29 22:44:04 -07:00
2018-01-02 20:35:10 +01:00
2016-11-30 11:09:39 +01:00
2018-01-02 20:35:12 +01:00
2016-09-28 04:48:00 -04:00
2018-03-11 16:21:31 +01:00
2017-06-07 12:07:44 +02:00
2016-10-20 14:32:22 -04:00
2016-06-30 05:03:36 -04:00
2017-11-18 11:22:20 +01:00
2017-12-20 10:07:33 +01:00
2018-02-13 12:35:56 +01:00
2017-11-18 11:22:22 +01:00
2016-09-08 16:13:09 -07:00
2017-09-20 08:19:55 +02:00
2017-11-18 11:22:22 +01:00
2016-07-07 10:35:06 +02:00
2015-08-28 13:32:36 -07:00
2016-11-03 16:10:26 -04:00
2017-12-25 14:23:39 +01:00
2016-09-10 20:53:55 -07:00
2016-09-16 04:24:07 -04:00
2016-03-01 17:18:44 -05:00
2017-08-12 19:31:22 -07:00
2018-02-28 10:18:30 +01:00
2017-02-04 09:47:11 +01:00
2018-01-02 20:35:10 +01:00
2017-10-12 11:51:22 +02:00
2017-12-25 14:23:42 +01:00
2017-11-18 11:22:23 +01:00
2016-11-03 16:10:26 -04:00
2016-11-28 12:15:00 -05:00
2016-09-21 00:23:01 -04:00
2017-07-05 14:40:28 +02:00
2017-05-03 08:36:34 -07:00
2016-09-30 01:50:45 -04:00
2018-01-02 20:35:12 +01:00
2018-03-11 16:21:31 +01:00
2017-11-18 11:22:22 +01:00
2017-08-11 08:49:35 -07:00
2018-02-13 12:35:56 +01:00
2016-05-11 14:43:19 -04:00
2016-09-21 00:22:59 -04:00
2017-06-14 15:05:52 +02:00
2016-05-11 14:43:19 -04:00
2016-10-31 15:16:28 -04:00
2016-08-23 23:11:36 -07:00
2017-02-04 09:47:10 +01:00
2016-05-11 14:43:19 -04:00
2016-05-11 14:43:19 -04:00
2018-03-24 11:00:12 +01:00
2018-01-02 20:35:11 +01:00
2017-05-14 14:00:21 +02:00
2016-09-01 14:09:01 -07:00
2017-12-16 16:25:46 +01:00
2017-11-24 08:33:40 +01:00
2018-01-31 12:55:55 +01:00
2018-03-11 16:21:33 +01:00
2017-06-17 06:41:49 +02:00
2018-01-02 20:35:13 +01:00
2016-05-02 17:02:25 -04:00
2018-01-31 12:55:54 +01:00
2017-12-25 14:23:45 +01:00
2016-05-11 14:43:19 -04:00
2016-05-11 14:43:19 -04:00
2016-05-11 14:43:19 -04:00
2016-09-08 17:16:12 -07:00
2018-02-13 12:35:56 +01:00
2016-07-11 13:27:06 -07:00
2016-09-08 16:13:09 -07:00
2016-11-24 15:32:14 -05:00
2018-01-31 12:55:55 +01:00
2016-06-17 20:23:32 -07:00
2018-03-11 16:21:32 +01:00
2016-11-24 15:32:14 -05:00
2015-09-17 17:18:37 -07:00
2015-10-24 06:54:12 -07:00
2016-09-12 15:52:44 -07:00