Commit 4449a51a authored by Oleg Nesterov's avatar Oleg Nesterov Committed by Linus Torvalds
Browse files

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

Signed-off-by: default avatarOleg Nesterov <>
Reported-by: default avatarAleksei Besogonov <>
Tested-by: default avatarAleksei Besogonov <>
Suggested-by: default avatarDavid Rientjes <>
Cc: <>
Signed-off-by: default avatarAndrew Morton <>
Signed-off-by: default avatarLinus Torvalds <>
parent edcad250
......@@ -183,17 +183,14 @@ pid_t vm_is_stack(struct task_struct *task,
if (in_group) {
struct task_struct *t;
if (!pid_alive(task))
goto done;
t = task;
do {
for_each_thread(task, t) {
if (vm_is_stack_for_task(t, vma)) {
ret = t->pid;
goto done;
} while_each_thread(task, t);
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment