aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/auditsc.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2006-03-08 02:51:39 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2006-03-20 14:08:55 -0500
commit4023e020807ea249ae83f0d1d851b4c7cf0afd8a (patch)
tree3bc91756c9429bd89c2ebb47108ed772dd29c4cf /kernel/auditsc.c
parentd9d9ec6e2c45b22282cd36cf92fcb23d504350a8 (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/auditsc.c')
-rw-r--r--kernel/auditsc.c10
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