diff options
author | Linus Torvalds <[email protected]> | 2006-05-11 11:08:49 -0700 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2006-05-11 11:08:49 -0700 |
commit | f358166a9405e4f1d8e50d8f415c26d95505b6de (patch) | |
tree | 7f5349d9e8b59633b9f8a7bd9bcd45ace1d21a41 /net/lapb/lapb_timer.c | |
parent | 0e44dc383787b472a7f13564c6bd8a44cc07d408 (diff) |
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 <[email protected]>
Cc: Eric W. Biederman <[email protected]>
Cc: Roland McGrath <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'net/lapb/lapb_timer.c')
0 files changed, 0 insertions, 0 deletions