X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=kernel%2Fptrace.c;h=335c5b932e14ffdac1a4c689dcf3895dc7e934ea;hb=d5f70c00ad24cd1158d3678b44ff969b4c971d49;hp=6252d2fa2bf345cf2e3a11456d29a526d7f131c3;hpb=df26c40e567356caeefe2861311e19c54444d917;p=linux-2.6 diff --git a/kernel/ptrace.c b/kernel/ptrace.c index 6252d2fa2b..335c5b932e 100644 --- a/kernel/ptrace.c +++ b/kernel/ptrace.c @@ -214,7 +214,7 @@ out: return retval; } -void __ptrace_detach(struct task_struct *child, unsigned int data) +static inline void __ptrace_detach(struct task_struct *child, unsigned int data) { child->exit_code = data; /* .. re-parent .. */ @@ -233,6 +233,7 @@ int ptrace_detach(struct task_struct *child, unsigned int data) ptrace_disable(child); write_lock_irq(&tasklist_lock); + /* protect against de_thread()->release_task() */ if (child->ptrace) __ptrace_detach(child, data); write_unlock_irq(&tasklist_lock);