ARM: sunxi_defconfig: enable CONFIG_REGULATOR
[cascardo/linux.git] / mm / util.c
index 093c973..fec39d4 100644 (file)
--- a/mm/util.c
+++ b/mm/util.c
@@ -170,32 +170,25 @@ static int vm_is_stack_for_task(struct task_struct *t,
 /*
  * Check if the vma is being used as a stack.
  * If is_group is non-zero, check in the entire thread group or else
- * just check in the current task. Returns the pid of the task that
- * the vma is stack for.
+ * just check in the current task. Returns the task_struct of the task
+ * that the vma is stack for. Must be called under rcu_read_lock().
  */
-pid_t vm_is_stack(struct task_struct *task,
-                 struct vm_area_struct *vma, int in_group)
+struct task_struct *task_of_stack(struct task_struct *task,
+                               struct vm_area_struct *vma, bool in_group)
 {
-       pid_t ret = 0;
-
        if (vm_is_stack_for_task(task, vma))
-               return task->pid;
+               return task;
 
        if (in_group) {
                struct task_struct *t;
 
-               rcu_read_lock();
                for_each_thread(task, t) {
-                       if (vm_is_stack_for_task(t, vma)) {
-                               ret = t->pid;
-                               goto done;
-                       }
+                       if (vm_is_stack_for_task(t, vma))
+                               return t;
                }
-done:
-               rcu_read_unlock();
        }
 
-       return ret;
+       return NULL;
 }
 
 #if defined(CONFIG_MMU) && !defined(HAVE_ARCH_PICK_MMAP_LAYOUT)