diff options
author | Jakub Kicinski <kuba@kernel.org> | 2023-06-01 15:33:03 -0700 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-06-01 15:38:26 -0700 |
commit | a03a91bd68cb00c615e602cf605e6be12bedaa90 (patch) | |
tree | d26ef8bf5538d777498d6ef0fc6e4cc69475415b /net/tls | |
parent | 4ff3dfc91c8458f65366f283167d1cd6f16be06f (diff) | |
parent | 714069daa5d345483578e2ff77fb6f06f4dcba6a (diff) | |
download | linux-a03a91bd68cb00c615e602cf605e6be12bedaa90.tar.gz linux-a03a91bd68cb00c615e602cf605e6be12bedaa90.tar.bz2 linux-a03a91bd68cb00c615e602cf605e6be12bedaa90.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Cross-merge networking fixes after downstream PR.
No conflicts.
Adjacent changes:
drivers/net/ethernet/sfc/tc.c
622ab656344a ("sfc: fix error unwinds in TC offload")
b6583d5e9e94 ("sfc: support TC decap rules matching on enc_src_port")
net/mptcp/protocol.c
5b825727d087 ("mptcp: add annotations around msk->subflow accesses")
e76c8ef5cc5b ("mptcp: refactor mptcp_stream_accept()")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/tls')
-rw-r--r-- | net/tls/tls_strp.c | 4 | ||||
-rw-r--r-- | net/tls/tls_sw.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/net/tls/tls_strp.c b/net/tls/tls_strp.c index da95abbb7ea3..f37f4a0fcd3c 100644 --- a/net/tls/tls_strp.c +++ b/net/tls/tls_strp.c @@ -20,7 +20,9 @@ static void tls_strp_abort_strp(struct tls_strparser *strp, int err) strp->stopped = 1; /* Report an error on the lower socket */ - strp->sk->sk_err = -err; + WRITE_ONCE(strp->sk->sk_err, -err); + /* Paired with smp_rmb() in tcp_poll() */ + smp_wmb(); sk_error_report(strp->sk); } diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c index 6e6a7c37d685..1a53c8f481e9 100644 --- a/net/tls/tls_sw.c +++ b/net/tls/tls_sw.c @@ -70,7 +70,9 @@ noinline void tls_err_abort(struct sock *sk, int err) { WARN_ON_ONCE(err >= 0); /* sk->sk_err should contain a positive error code. */ - sk->sk_err = -err; + WRITE_ONCE(sk->sk_err, -err); + /* Paired with smp_rmb() in tcp_poll() */ + smp_wmb(); sk_error_report(sk); } |