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

sched_show_task: fix unsafe usage of ->real_parent

rcu_read_lock() can not protect p->real_parent if release_task(p) was
already called, change sched_show_task() to check pis_alive() like other
users do.

Note: we need some helpers to cleanup the code like this.  And it seems
that that the usage of cpu_curr(cpu) in dump_cpu_task() is not safe too.
Signed-off-by: default avatarOleg Nesterov <>
Cc: Aaron Tomlin <>
Cc: Alexey Dobriyan <>
Cc: "Eric W. Biederman" <>,
Cc: Sterling Alexander <>
Acked-by: default avatarPeter Zijlstra (Intel) <>
Cc: Roland McGrath <>
Signed-off-by: default avatarAndrew Morton <>
Signed-off-by: default avatarLinus Torvalds <>
parent abdba6e9
......@@ -4527,8 +4527,10 @@ void sched_show_task(struct task_struct *p)
free = stack_not_used(p);
ppid = 0;
ppid = task_pid_nr(rcu_dereference(p->real_parent));
if (pid_alive(p))
ppid = task_pid_nr(rcu_dereference(p->real_parent));
printk(KERN_CONT "%5lu %5d %6d 0x%08lx\n", free,
task_pid_nr(p), ppid,
Markdown is supported
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