android, lmk: Send SIGKILL before setting TIF_MEMDIE.
[cascardo/linux.git] / drivers / staging / android / lowmemorykiller.c
index 872bd60..569d12c 100644 (file)
@@ -157,26 +157,22 @@ static unsigned long lowmem_scan(struct shrinker *s, struct shrink_control *sc)
        }
        if (selected) {
                task_lock(selected);
-               if (!selected->mm) {
-                       /* Already exited, cannot do mark_tsk_oom_victim() */
-                       task_unlock(selected);
-                       goto out;
-               }
+               send_sig(SIGKILL, selected, 0);
                /*
                 * FIXME: lowmemorykiller shouldn't abuse global OOM killer
                 * infrastructure. There is no real reason why the selected
                 * task should have access to the memory reserves.
                 */
-               mark_oom_victim(selected);
+               if (selected->mm)
+                       mark_oom_victim(selected);
                task_unlock(selected);
                lowmem_print(1, "send sigkill to %d (%s), adj %hd, size %d\n",
                             selected->pid, selected->comm,
                             selected_oom_score_adj, selected_tasksize);
                lowmem_deathpending_timeout = jiffies + HZ;
-               send_sig(SIGKILL, selected, 0);
                rem += selected_tasksize;
        }
-out:
+
        lowmem_print(4, "lowmem_scan %lu, %x, return %lu\n",
                     sc->nr_to_scan, sc->gfp_mask, rem);
        rcu_read_unlock();