]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blobdiff - mm/oom_kill.c
mm/memcontrol: fix wrong statistics in memory.stat
[mirror_ubuntu-hirsute-kernel.git] / mm / oom_kill.c
index 5a58778c91d46d36f966fa2016c2ff176a83e7c0..f719b64741d63419f42a2513599fff55c1148130 100644 (file)
@@ -987,8 +987,7 @@ static void oom_kill_process(struct oom_control *oc, const char *message)
 /*
  * Determines whether the kernel must panic because of the panic_on_oom sysctl.
  */
-static void check_panic_on_oom(struct oom_control *oc,
-                              enum oom_constraint constraint)
+static void check_panic_on_oom(struct oom_control *oc)
 {
        if (likely(!sysctl_panic_on_oom))
                return;
@@ -998,7 +997,7 @@ static void check_panic_on_oom(struct oom_control *oc,
                 * does not panic for cpuset, mempolicy, or memcg allocation
                 * failures.
                 */
-               if (constraint != CONSTRAINT_NONE)
+               if (oc->constraint != CONSTRAINT_NONE)
                        return;
        }
        /* Do not panic for oom kills triggered by sysrq */
@@ -1035,7 +1034,6 @@ EXPORT_SYMBOL_GPL(unregister_oom_notifier);
 bool out_of_memory(struct oom_control *oc)
 {
        unsigned long freed = 0;
-       enum oom_constraint constraint = CONSTRAINT_NONE;
 
        if (oom_killer_disabled)
                return false;
@@ -1071,10 +1069,10 @@ bool out_of_memory(struct oom_control *oc)
         * Check if there were limitations on the allocation (only relevant for
         * NUMA and memcg) that may require different handling.
         */
-       constraint = constrained_alloc(oc);
-       if (constraint != CONSTRAINT_MEMORY_POLICY)
+       oc->constraint = constrained_alloc(oc);
+       if (oc->constraint != CONSTRAINT_MEMORY_POLICY)
                oc->nodemask = NULL;
-       check_panic_on_oom(oc, constraint);
+       check_panic_on_oom(oc);
 
        if (!is_memcg_oom(oc) && sysctl_oom_kill_allocating_task &&
            current->mm && !oom_unkillable_task(current, NULL, oc->nodemask) &&