diff options
author | Eric Dumazet <edumazet@google.com> | 2023-08-02 16:15:00 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-08-03 20:58:24 +0300 |
commit | ddf251fa2bc1d3699eec0bae6ed0bc373b8fda79 (patch) | |
tree | 88f728828a37d6926edc2343f1063e8220398a8f /tools/perf/util/c++/clang-test.cpp | |
parent | d5d986ce42c71a7562d32c4e21e026b0f87befec (diff) | |
download | linux-ddf251fa2bc1d3699eec0bae6ed0bc373b8fda79.tar.xz |
tcp_metrics: fix data-race in tcpm_suck_dst() vs fastopen
Whenever tcpm_new() reclaims an old entry, tcpm_suck_dst()
would overwrite data that could be read from tcp_fastopen_cache_get()
or tcp_metrics_fill_info().
We need to acquire fastopen_seqlock to maintain consistency.
For newly allocated objects, tcpm_new() can switch to kzalloc()
to avoid an extra fastopen_seqlock acquisition.
Fixes: 1fe4c481ba63 ("net-tcp: Fast Open client - cookie cache")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Yuchung Cheng <ycheng@google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://lore.kernel.org/r/20230802131500.1478140-7-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/perf/util/c++/clang-test.cpp')
0 files changed, 0 insertions, 0 deletions