diff --git a/net/core/sock.c b/net/core/sock.c index fa2f9a6cf84e7de608d81e75bcecbcd19b047ba8..6542b52d0f5f8b1fcc2410ba35abbc989f246a4c 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -2204,8 +2204,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); } }