]> git.openfabrics.org - ~shefty/rdma-dev.git/blobdiff - mm/oom_kill.c
oom: only oom kill exiting tasks with attached memory
[~shefty/rdma-dev.git] / mm / oom_kill.c
index cdcf89cb9ff22f092da2b09ea0c595d0dac8c282..175a67a78a99e7b0368dfba11edf9888bc049674 100644 (file)
@@ -325,11 +325,8 @@ static void __oom_kill_task(struct task_struct *p, int verbose)
                return;
        }
 
-       if (!p->mm) {
-               WARN_ON(1);
-               printk(KERN_WARNING "tried to kill an mm-less task!\n");
+       if (!p->mm)
                return;
-       }
 
        if (verbose)
                printk(KERN_ERR "Killed process %d (%s)\n",
@@ -397,8 +394,9 @@ static int oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order,
        /*
         * If the task is already exiting, don't alarm the sysadmin or kill
         * its children or threads, just set TIF_MEMDIE so it can die quickly
+        * if its mm is still attached.
         */
-       if (p->flags & PF_EXITING) {
+       if (p->mm && (p->flags & PF_EXITING)) {
                __oom_kill_task(p, 0);
                return 0;
        }