diff options
author | Ingo Molnar <mingo@elte.hu> | 2006-03-08 02:51:39 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2006-03-20 14:08:55 -0500 |
commit | 4023e020807ea249ae83f0d1d851b4c7cf0afd8a (patch) | |
tree | 3bc91756c9429bd89c2ebb47108ed772dd29c4cf /kernel | |
parent | d9d9ec6e2c45b22282cd36cf92fcb23d504350a8 (diff) |
[PATCH] simplify audit_free() locking
Simplify audit_free()'s locking: no need to lock a task that we are tearing
down. [the extra locking also caused false positives in the lock
validator]
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/auditsc.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index d3d499272d13..b613ec89e99c 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c | |||
@@ -704,10 +704,14 @@ void audit_free(struct task_struct *tsk) | |||
704 | { | 704 | { |
705 | struct audit_context *context; | 705 | struct audit_context *context; |
706 | 706 | ||
707 | task_lock(tsk); | 707 | /* |
708 | * No need to lock the task - when we execute audit_free() | ||
709 | * then the task has no external references anymore, and | ||
710 | * we are tearing it down. (The locking also confuses | ||
711 | * DEBUG_LOCKDEP - this freeing may occur in softirq | ||
712 | * contexts as well, via RCU.) | ||
713 | */ | ||
708 | context = audit_get_context(tsk, 0, 0); | 714 | context = audit_get_context(tsk, 0, 0); |
709 | task_unlock(tsk); | ||
710 | |||
711 | if (likely(!context)) | 715 | if (likely(!context)) |
712 | return; | 716 | return; |
713 | 717 | ||