net: Fix data-races around sysctl_mem.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2134161
Tested: LNST, Tier1
Upstream commit:
commit 310731e2f1611d1d13aae237abcf8e66d33345d5
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date: Wed Jul 6 16:40:00 2022 -0700
net: Fix data-races around sysctl_mem.
While reading .sysctl_mem, it can be changed concurrently.
So, we need to add READ_ONCE() to avoid data-races.
Fixes: 1da177e4c3
("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: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
7a449a8bc9
commit
a99b2cb4eb
|
@ -1518,7 +1518,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;
|
||||
|
|
Loading…
Reference in New Issue