diff options
| author | Eric Dumazet <[email protected]> | 2024-05-28 12:52:53 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2024-05-30 00:21:36 +0000 |
| commit | fde6f897f2a184546bf5516ac736523ef24dc6a7 (patch) | |
| tree | fc8014baaf67f7eb33fa5249a7c068a43438c7cc /net/unix/af_unix.c | |
| parent | tcp: fix races in tcp_abort() (diff) | |
| download | kernel-fde6f897f2a184546bf5516ac736523ef24dc6a7.tar.gz kernel-fde6f897f2a184546bf5516ac736523ef24dc6a7.zip | |
tcp: fix races in tcp_v[46]_err()
These functions have races when they:
1) Write sk->sk_err
2) call sk_error_report(sk)
3) call tcp_done(sk)
As described in prior patches in this series:
An smp_wmb() is missing.
We should call tcp_done() before sk_error_report(sk)
to have consistent tcp_poll() results on SMP hosts.
Use tcp_done_with_error() where we centralized the
correct sequence.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Eric Dumazet <[email protected]>
Acked-by: Neal Cardwell <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'net/unix/af_unix.c')
0 files changed, 0 insertions, 0 deletions
