}
 
 #define K(x) ((x) << (PAGE_SHIFT-10))
-static int oom_kill_task(struct task_struct *p)
+static void oom_kill_task(struct task_struct *p)
 {
        struct task_struct *q;
        struct mm_struct *mm;
 
        p = find_lock_task_mm(p);
        if (!p)
-               return 1;
+               return;
 
        /* mm cannot be safely dereferenced after task_unlock(p) */
        mm = p->mm;
 
        set_tsk_thread_flag(p, TIF_MEMDIE);
        force_sig(SIGKILL, p);
-
-       return 0;
 }
 #undef K
 
-static int oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order,
-                           unsigned int points, unsigned long totalpages,
-                           struct mem_cgroup *memcg, nodemask_t *nodemask,
-                           const char *message)
+static void oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order,
+                            unsigned int points, unsigned long totalpages,
+                            struct mem_cgroup *memcg, nodemask_t *nodemask,
+                            const char *message)
 {
        struct task_struct *victim = p;
        struct task_struct *child;
         */
        if (p->flags & PF_EXITING) {
                set_tsk_thread_flag(p, TIF_MEMDIE);
-               return 0;
+               return;
        }
 
        task_lock(p);
                }
        } while_each_thread(p, t);
 
-       return oom_kill_task(victim);
+       oom_kill_task(victim);
 }
 
 /*
        check_panic_on_oom(CONSTRAINT_MEMCG, gfp_mask, 0, NULL);
        limit = mem_cgroup_get_limit(memcg) >> PAGE_SHIFT;
        read_lock(&tasklist_lock);
-retry:
        p = select_bad_process(&points, limit, memcg, NULL);
-       if (!p || PTR_ERR(p) == -1UL)
-               goto out;
-
-       if (oom_kill_process(p, gfp_mask, 0, points, limit, memcg, NULL,
-                               "Memory cgroup out of memory"))
-               goto retry;
-out:
+       if (p && PTR_ERR(p) != -1UL)
+               oom_kill_process(p, gfp_mask, 0, points, limit, memcg, NULL,
+                                "Memory cgroup out of memory");
        read_unlock(&tasklist_lock);
 }
 #endif
        if (sysctl_oom_kill_allocating_task &&
            !oom_unkillable_task(current, NULL, nodemask) &&
            current->mm) {
-               /*
-                * oom_kill_process() needs tasklist_lock held.  If it returns
-                * non-zero, current could not be killed so we must fallback to
-                * the tasklist scan.
-                */
-               if (!oom_kill_process(current, gfp_mask, order, 0, totalpages,
-                               NULL, nodemask,
-                               "Out of memory (oom_kill_allocating_task)"))
-                       goto out;
+               oom_kill_process(current, gfp_mask, order, 0, totalpages, NULL,
+                                nodemask,
+                                "Out of memory (oom_kill_allocating_task)");
+               goto out;
        }
 
-retry:
        p = select_bad_process(&points, totalpages, NULL, mpol_mask);
-       if (PTR_ERR(p) == -1UL)
-               goto out;
-
        /* Found nothing?!?! Either we hang forever, or we panic. */
        if (!p) {
                dump_header(NULL, gfp_mask, order, NULL, mpol_mask);
                read_unlock(&tasklist_lock);
                panic("Out of memory and no killable processes...\n");
        }
-
-       if (oom_kill_process(p, gfp_mask, order, points, totalpages, NULL,
-                               nodemask, "Out of memory"))
-               goto retry;
-       killed = 1;
+       if (PTR_ERR(p) != -1UL) {
+               oom_kill_process(p, gfp_mask, order, points, totalpages, NULL,
+                                nodemask, "Out of memory");
+               killed = 1;
+       }
 out:
        read_unlock(&tasklist_lock);