return 0;
 }
 
-static int oom_kill_process(struct task_struct *p, unsigned long points,
-               const char *message)
+static int oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order,
+                           unsigned long points, const char *message)
 {
        struct task_struct *c;
        struct list_head *tsk;
 
+       if (printk_ratelimit()) {
+               printk(KERN_WARNING "%s invoked oom-killer: "
+                       "gfp_mask=0x%x, order=%d, oomkilladj=%d\n",
+                       current->comm, gfp_mask, order, current->oomkilladj);
+               dump_stack();
+               show_mem();
+       }
+
        /*
         * 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
                /* Got some memory back in the last second. */
                return;
 
-       if (printk_ratelimit()) {
-               printk(KERN_WARNING "%s invoked oom-killer: "
-                       "gfp_mask=0x%x, order=%d, oomkilladj=%d\n",
-                       current->comm, gfp_mask, order, current->oomkilladj);
-               dump_stack();
-               show_mem();
-       }
-
        if (sysctl_panic_on_oom == 2)
                panic("out of memory. Compulsory panic_on_oom is selected.\n");
 
 
        switch (constraint) {
        case CONSTRAINT_MEMORY_POLICY:
-               oom_kill_process(current, points,
+               oom_kill_process(current, gfp_mask, order, points,
                                "No available memory (MPOL_BIND)");
                break;
 
                /* Fall-through */
        case CONSTRAINT_CPUSET:
                if (sysctl_oom_kill_allocating_task) {
-                       oom_kill_process(current, points,
+                       oom_kill_process(current, gfp_mask, order, points,
                                        "Out of memory (oom_kill_allocating_task)");
                        break;
                }
                        panic("Out of memory and no killable processes...\n");
                }
 
-               if (oom_kill_process(p, points, "Out of memory"))
+               if (oom_kill_process(p, points, gfp_mask, order,
+                                    "Out of memory"))
                        goto retry;
 
                break;