diff options
author | Kuniyuki Iwashima <kuniyu@amazon.com> | 2022-07-07 02:40:00 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-07-21 21:59:20 +0300 |
commit | 861f1852af6dc2a442300a6bcdb281eab9b1a4ba (patch) | |
tree | e9c90b978b01ccd6736f207b66539741cdb5d691 /include | |
parent | 8d2daf565f61e15ea080515b8aa7491fb7f61d2c (diff) | |
download | linux-861f1852af6dc2a442300a6bcdb281eab9b1a4ba.tar.xz |
net: Fix data-races around sysctl_mem.
[ Upstream commit 310731e2f1611d1d13aae237abcf8e66d33345d5 ]
While reading .sysctl_mem, it can be changed concurrently.
So, we need to add READ_ONCE() to avoid data-races.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/sock.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/sock.h b/include/net/sock.h index 7f213cfcb3cc..9d687070d272 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -1400,7 +1400,7 @@ void __sk_mem_reclaim(struct sock *sk, int amount); /* sysctl_mem values are in pages, we convert them in SK_MEM_QUANTUM units */ static inline long sk_prot_mem_limits(const struct sock *sk, int index) { - long val = sk->sk_prot->sysctl_mem[index]; + long val = READ_ONCE(sk->sk_prot->sysctl_mem[index]); #if PAGE_SIZE > SK_MEM_QUANTUM val <<= PAGE_SHIFT - SK_MEM_QUANTUM_SHIFT; |