Files
twx-linux/net/ipv4
Eric Dumazet 2349cbd511 tcp: remove poll() flakes with FastOpen
[ Upstream commit 0f9fa831ae ]

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 10:58:42 +01:00
..
2017-06-14 13:16:19 +02:00
2017-11-18 11:11:06 +01:00
2016-11-15 07:46:38 +01:00
2016-11-15 07:46:38 +01:00
…
…
…
2017-04-30 05:49:29 +02:00
…
2017-11-18 11:11:06 +01:00
…
…
2017-05-14 13:32:58 +02:00
…
…