On 09/03, [email protected] wrote:
>
> The patch below does not apply to the 3.10-stable tree.
> If someone wants it applied there, or to any other stable or longterm
> tree, then please email the backport, including the original git commit
> id to <[email protected]>.

Greg! Sorry for inconvenience.

Yes, as David has already explained, I forgot to mention that this is only
for those trees which which have already backported 0c740d0afc3b "introduce
for_each_thread() to replace the buggy while_each_thread()".

I promise, I'll read Documentation/stable_kernel_rules.txt again.

> ------------------ original commit in Linus's tree ------------------
> 
> From 4449a51a7c281602d3a385044ab928322a122a02 Mon Sep 17 00:00:00 2001
> From: Oleg Nesterov <[email protected]>
> Date: Fri, 8 Aug 2014 14:19:17 -0700
> Subject: [PATCH] vm_is_stack: use for_each_thread() rather then buggy
>  while_each_thread()
> 
> Aleksei hit the soft lockup during reading /proc/PID/smaps.  David
> investigated the problem and suggested the right fix.
> 
> while_each_thread() is racy and should die, this patch updates
> vm_is_stack().
> 
> Signed-off-by: Oleg Nesterov <[email protected]>
> Reported-by: Aleksei Besogonov <[email protected]>
> Tested-by: Aleksei Besogonov <[email protected]>
> Suggested-by: David Rientjes <[email protected]>
> Cc: <[email protected]>
> Signed-off-by: Andrew Morton <[email protected]>
> Signed-off-by: Linus Torvalds <[email protected]>
> 
> diff --git a/mm/util.c b/mm/util.c
> index 7b6608df2ee8..093c973f1697 100644
> --- a/mm/util.c
> +++ b/mm/util.c
> @@ -183,17 +183,14 @@ pid_t vm_is_stack(struct task_struct *task,
>  
>       if (in_group) {
>               struct task_struct *t;
> -             rcu_read_lock();
> -             if (!pid_alive(task))
> -                     goto done;
>  
> -             t = task;
> -             do {
> +             rcu_read_lock();
> +             for_each_thread(task, t) {
>                       if (vm_is_stack_for_task(t, vma)) {
>                               ret = t->pid;
>                               goto done;
>                       }
> -             } while_each_thread(task, t);
> +             }
>  done:
>               rcu_read_unlock();
>       }
> 

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to