Commit b9ca16e0 authored by Daniel Jacobowitz's avatar Daniel Jacobowitz Committed by Linus Torvalds

[PATCH] Typo in do_syslog/__down_trylock lockup fix

Linus spotted one cut-n-pasto ('tracing' argument) but didn't see the
other: we were walking the ptrace_children list by the sibling field.

So we got garbage for your task_structs when this happened.  If the list
wasn't empty, it would crash.  Strace detaches from all tasks when it
receives a Control-C so only with enough threads and SMP would this be
easily seen.
parent 916da46b
...@@ -582,7 +582,7 @@ static void exit_notify(void) ...@@ -582,7 +582,7 @@ static void exit_notify(void)
while (!list_empty(&current->children)) while (!list_empty(&current->children))
zap_thread(list_entry(current->children.next,struct task_struct,sibling), current, 0); zap_thread(list_entry(current->children.next,struct task_struct,sibling), current, 0);
while (!list_empty(&current->ptrace_children)) while (!list_empty(&current->ptrace_children))
zap_thread(list_entry(current->ptrace_children.next,struct task_struct,sibling), current, 1); zap_thread(list_entry(current->ptrace_children.next,struct task_struct,ptrace_list), current, 1);
BUG_ON(!list_empty(&current->children)); BUG_ON(!list_empty(&current->children));
/* /*
* No need to unlock IRQs, we'll schedule() immediately * No need to unlock IRQs, we'll schedule() immediately
......
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