Loading kernel/auditsc.c +1 −8 Original line number Diff line number Diff line Loading @@ -698,19 +698,12 @@ static void audit_log_exit(struct audit_context *context, struct task_struct *ts * audit_free - free a per-task audit context * @tsk: task whose audit context block to free * * Called from copy_process and __put_task_struct. * Called from copy_process and do_exit */ void audit_free(struct task_struct *tsk) { struct audit_context *context; /* * No need to lock the task - when we execute audit_free() * then the task has no external references anymore, and * we are tearing it down. (The locking also confuses * DEBUG_LOCKDEP - this freeing may occur in softirq * contexts as well, via RCU.) */ context = audit_get_context(tsk, 0, 0); if (likely(!context)) return; Loading kernel/exit.c +3 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ #include <linux/futex.h> #include <linux/compat.h> #include <linux/pipe_fs_i.h> #include <linux/audit.h> /* for audit_free() */ #include <asm/uaccess.h> #include <asm/unistd.h> Loading Loading @@ -910,6 +911,8 @@ fastcall NORET_TYPE void do_exit(long code) if (unlikely(tsk->compat_robust_list)) compat_exit_robust_list(tsk); #endif if (unlikely(tsk->audit_context)) audit_free(tsk); exit_mm(tsk); exit_sem(tsk); Loading kernel/fork.c +0 −2 Original line number Diff line number Diff line Loading @@ -114,8 +114,6 @@ void __put_task_struct(struct task_struct *tsk) WARN_ON(atomic_read(&tsk->usage)); WARN_ON(tsk == current); if (unlikely(tsk->audit_context)) audit_free(tsk); security_task_free(tsk); free_uid(tsk->user); put_group_info(tsk->group_info); Loading Loading
kernel/auditsc.c +1 −8 Original line number Diff line number Diff line Loading @@ -698,19 +698,12 @@ static void audit_log_exit(struct audit_context *context, struct task_struct *ts * audit_free - free a per-task audit context * @tsk: task whose audit context block to free * * Called from copy_process and __put_task_struct. * Called from copy_process and do_exit */ void audit_free(struct task_struct *tsk) { struct audit_context *context; /* * No need to lock the task - when we execute audit_free() * then the task has no external references anymore, and * we are tearing it down. (The locking also confuses * DEBUG_LOCKDEP - this freeing may occur in softirq * contexts as well, via RCU.) */ context = audit_get_context(tsk, 0, 0); if (likely(!context)) return; Loading
kernel/exit.c +3 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ #include <linux/futex.h> #include <linux/compat.h> #include <linux/pipe_fs_i.h> #include <linux/audit.h> /* for audit_free() */ #include <asm/uaccess.h> #include <asm/unistd.h> Loading Loading @@ -910,6 +911,8 @@ fastcall NORET_TYPE void do_exit(long code) if (unlikely(tsk->compat_robust_list)) compat_exit_robust_list(tsk); #endif if (unlikely(tsk->audit_context)) audit_free(tsk); exit_mm(tsk); exit_sem(tsk); Loading
kernel/fork.c +0 −2 Original line number Diff line number Diff line Loading @@ -114,8 +114,6 @@ void __put_task_struct(struct task_struct *tsk) WARN_ON(atomic_read(&tsk->usage)); WARN_ON(tsk == current); if (unlikely(tsk->audit_context)) audit_free(tsk); security_task_free(tsk); free_uid(tsk->user); put_group_info(tsk->group_info); Loading