diff --git a/net/core/sock.c b/net/core/sock.c index 910d0e0ad5c49e7349dc33b651c97fcefb25052c..9fe38050deee395b3a8e3ac794edaf5d81b4c14c 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -2201,8 +2201,8 @@ static void sk_leave_memory_pressure(struct sock *sk) } else { unsigned long *memory_pressure = sk->sk_prot->memory_pressure; - if (memory_pressure && *memory_pressure) - *memory_pressure = 0; + if (memory_pressure && READ_ONCE(*memory_pressure)) + WRITE_ONCE(*memory_pressure, 0); } }