summaryrefslogtreecommitdiffstats
path: root/kernel/fork.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2012-07-15 10:24:53 +0200
committerThomas Gleixner <tglx@linutronix.de>2012-07-15 10:24:53 +0200
commite8b9dd7e2471b1274e3be719fcc385e0a710e46f (patch)
tree030d7ce20e8f8767d9423f78c102aba089eec372 /kernel/fork.c
parentMerge branch 'nohz-for-tip-2' of git://github.com/fweisbec/linux-dynticks int... (diff)
parentntp: Fix STA_INS/DEL clearing bug (diff)
downloadlinux-e8b9dd7e2471b1274e3be719fcc385e0a710e46f.tar.xz
linux-e8b9dd7e2471b1274e3be719fcc385e0a710e46f.zip
Merge branch 'timers/urgent' into timers/core
Reason: Update to upstream changes to avoid further conflicts. Fixup a trivial merge conflict in kernel/time/tick-sched.c Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/fork.c')
-rw-r--r--kernel/fork.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index ab5211b9e622..f00e319d8376 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -304,12 +304,17 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
}
err = arch_dup_task_struct(tsk, orig);
- if (err)
- goto out;
+ /*
+ * We defer looking at err, because we will need this setup
+ * for the clean up path to work correctly.
+ */
tsk->stack = ti;
-
setup_thread_stack(tsk, orig);
+
+ if (err)
+ goto out;
+
clear_user_return_notifier(tsk);
clear_tsk_need_resched(tsk);
stackend = end_of_stack(tsk);