]> git.karo-electronics.de Git - karo-tx-linux.git/commit
[PATCH] ptrace_attach: fix possible deadlock schenario with irqs
authorLinus Torvalds <torvalds@g5.osdl.org>
Thu, 11 May 2006 18:08:49 +0000 (11:08 -0700)
committerChris Wright <chrisw@sous-sol.org>
Sat, 20 May 2006 22:00:33 +0000 (15:00 -0700)
commitf91962f90eb89684ecbfb3f6b8578b3ebd6937df
tree2c4d2f06aab013d41f6d099a6cc3ea23973fa44a
parent65b01b76265047aa59d6eb741ec61468c8867256
[PATCH] ptrace_attach: fix possible deadlock schenario with irqs

Eric Biederman points out that we can't take the task_lock while holding
tasklist_lock for writing, because another CPU that holds the task lock
might take an interrupt that then tries to take tasklist_lock for writing.

Which would be a nasty deadlock, with one CPU spinning forever in an
interrupt handler (although admittedly you need to really work at
triggering it ;)

Since the ptrace_attach() code is special and very unusual, just make it
be extra careful, and use trylock+repeat to avoid the possible deadlock.

Cc: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Cc: Roland McGrath <roland@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
kernel/ptrace.c