diff options
| author | Ingo Molnar <mingo@elte.hu> | 2008-11-18 18:48:49 +0300 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-11-18 18:48:49 +0300 |
| commit | 73f56c0d35e6427081a4eabd620d8b8d8a35bd09 (patch) | |
| tree | 9fe1a2577baea03f3a6ec4a5e79f3ff26c4ee0ae /kernel/exit.c | |
| parent | 0af40a4b1050c050e62eb1dc30b82d5ab22bf221 (diff) | |
| parent | 8501c45cc32c311ae755a2d5ac8c4a5f04908d42 (diff) | |
| download | linux-73f56c0d35e6427081a4eabd620d8b8d8a35bd09.tar.xz | |
Merge branch 'iommu-fixes-2.6.28' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu into x86/urgent
Diffstat (limited to 'kernel/exit.c')
| -rw-r--r-- | kernel/exit.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index 80137a5d9467..2d8be7ebb0f7 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -40,7 +40,6 @@ #include <linux/cn_proc.h> #include <linux/mutex.h> #include <linux/futex.h> -#include <linux/compat.h> #include <linux/pipe_fs_i.h> #include <linux/audit.h> /* for audit_free() */ #include <linux/resource.h> @@ -141,6 +140,11 @@ static void __exit_signal(struct task_struct *tsk) if (sig) { flush_sigqueue(&sig->shared_pending); taskstats_tgid_free(sig); + /* + * Make sure ->signal can't go away under rq->lock, + * see account_group_exec_runtime(). + */ + task_rq_unlock_wait(tsk); __cleanup_signal(sig); } } @@ -1054,14 +1058,6 @@ NORET_TYPE void do_exit(long code) exit_itimers(tsk->signal); } acct_collect(code, group_dead); -#ifdef CONFIG_FUTEX - if (unlikely(tsk->robust_list)) - exit_robust_list(tsk); -#ifdef CONFIG_COMPAT - if (unlikely(tsk->compat_robust_list)) - compat_exit_robust_list(tsk); -#endif -#endif if (group_dead) tty_audit_exit(); if (unlikely(tsk->audit_context)) |
