@@ -798,8 +798,12 @@ int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin)
{
long allowed;
- VM_WARN_ONCE(percpu_counter_read(&vm_committed_as) <
- -(s64)vm_committed_as_batch * num_online_cpus(),
+ /*
+ * A transient decrease in the value is unlikely, so no need
+ * READ_ONCE() for vm_committed_as.count.
+ */
+ VM_WARN_ONCE(data_race(percpu_counter_read(&vm_committed_as) <
+ -(s64)vm_committed_as_batch * num_online_cpus()),
"memory commitment underflow");
vm_acct_memory(pages);