]> bbs.cooldavid.org Git - net-next-2.6.git/commit - include/linux/ptrace.h
[PATCH] ptrace: document the locking rules
authorEric W. Biederman <ebiederm@xmission.com>
Fri, 23 Jun 2006 09:05:18 +0000 (02:05 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 23 Jun 2006 14:43:03 +0000 (07:43 -0700)
commit260ea1013283d8acbb451459ed1ca560c1445c20
tree35819d28dbfa8600ac0de336147323e660b0390c
parent4a4b69f79ba7286794765a856349e380f984a6cb
[PATCH] ptrace: document the locking rules

After a lot of reading the code and thinking about how it behaves I have
managed to figure out what the current ptrace locking rules are.  The
current code is in much better that it appears at first glance.  The
troublesome code paths are actually the code paths that violate the current
rules.

ptrace uses simple exclusive access as it's locking.  You can only touch
task->ptrace if the task is stopped and you are the ptracer, or if the task
is running and are the task itself.

Very simple, very easy to maintain.  It just needs to be documented so
people know not to touch ptrace from elsewhere.

Currently we do have a few pieces of code that are in violation of this
rule.  Particularly the core dump code, and ptrace_attach.  But so far the
code looks fixable.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Roland McGrath <roland@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
include/linux/ptrace.h
include/linux/sched.h