aboutsummaryrefslogtreecommitdiff
path: root/net/ipv4/tcp_ipv4.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2023-03-15 20:57:41 +0000
committerDavid S. Miller <davem@davemloft.net>2023-03-17 08:25:05 +0000
commitcee1af825d65b8122627fc2efbc36c1bd51ee103 (patch)
tree0ac92afa20149068ef410606e944163ba6a80a14 /net/ipv4/tcp_ipv4.c
parent731b73dba359e3ff00517c13aa0daa82b34ff466 (diff)
downloadlinux-cee1af825d65b8122627fc2efbc36c1bd51ee103.tar.gz
linux-cee1af825d65b8122627fc2efbc36c1bd51ee103.tar.bz2
linux-cee1af825d65b8122627fc2efbc36c1bd51ee103.zip
tcp: annotate lockless accesses to sk->sk_err_soft
This field can be read/written without lock synchronization. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
-rw-r--r--net/ipv4/tcp_ipv4.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index ea370afa70ed..4f6894469b62 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -361,7 +361,7 @@ void tcp_v4_mtu_reduced(struct sock *sk)
* for the case, if this connection will not able to recover.
*/
if (mtu < dst_mtu(dst) && ip_dont_fragment(sk, dst))
- sk->sk_err_soft = EMSGSIZE;
+ WRITE_ONCE(sk->sk_err_soft, EMSGSIZE);
mtu = dst_mtu(dst);
@@ -602,7 +602,7 @@ int tcp_v4_err(struct sk_buff *skb, u32 info)
tcp_done(sk);
} else {
- sk->sk_err_soft = err;
+ WRITE_ONCE(sk->sk_err_soft, err);
}
goto out;
}
@@ -628,7 +628,7 @@ int tcp_v4_err(struct sk_buff *skb, u32 info)
sk->sk_err = err;
sk_error_report(sk);
} else { /* Only an error on timeout */
- sk->sk_err_soft = err;
+ WRITE_ONCE(sk->sk_err_soft, err);
}
out: