On 09/03, gregkh@xxxxxxxxxxxxxxxxxxx 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 <stable@xxxxxxxxxxxxxxx>. 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 <oleg@xxxxxxxxxx> > 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 <oleg@xxxxxxxxxx> > Reported-by: Aleksei Besogonov <alex.besogonov@xxxxxxxxx> > Tested-by: Aleksei Besogonov <alex.besogonov@xxxxxxxxx> > Suggested-by: David Rientjes <rientjes@xxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> > > 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html