net/tcp_fastopen: fix data races around tfo_active_disable_stamp
authorEric Dumazet <edumazet@google.com>
Mon, 19 Jul 2021 09:12:18 +0000 (02:12 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 19 Jul 2021 17:11:51 +0000 (10:11 -0700)
commit6f20c8adb1813467ea52c1296d52c4e95978cb2f
tree592e5ed86c80efeea66fc3449361a17b04d7a2b4
parenta0050653db957270a948ea0519763de802084180
net/tcp_fastopen: fix data races around tfo_active_disable_stamp

tfo_active_disable_stamp is read and written locklessly.
We need to annotate these accesses appropriately.

Then, we need to perform the atomic_inc(tfo_active_disable_times)
after the timestamp has been updated, and thus add barriers
to make sure tcp_fastopen_active_should_disable() wont read
a stale timestamp.

Fixes: cf1ef3f0719b ("net/tcp_fastopen: Disable active side TFO in certain scenarios")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Wei Wang <weiwan@google.com>
Cc: Yuchung Cheng <ycheng@google.com>
Cc: Neal Cardwell <ncardwell@google.com>
Acked-by: Wei Wang <weiwan@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_fastopen.c