aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/fork.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/fork.c')
-rw-r--r--kernel/fork.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index dfa736c98d17..294189fc7ac8 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1087,8 +1087,10 @@ static void rt_mutex_init_task(struct task_struct *p)
1087{ 1087{
1088 raw_spin_lock_init(&p->pi_lock); 1088 raw_spin_lock_init(&p->pi_lock);
1089#ifdef CONFIG_RT_MUTEXES 1089#ifdef CONFIG_RT_MUTEXES
1090 plist_head_init(&p->pi_waiters); 1090 p->pi_waiters = RB_ROOT;
1091 p->pi_waiters_leftmost = NULL;
1091 p->pi_blocked_on = NULL; 1092 p->pi_blocked_on = NULL;
1093 p->pi_top_task = NULL;
1092#endif 1094#endif
1093} 1095}
1094 1096
@@ -1311,7 +1313,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
1311#endif 1313#endif
1312 1314
1313 /* Perform scheduler related setup. Assign this task to a CPU. */ 1315 /* Perform scheduler related setup. Assign this task to a CPU. */
1314 sched_fork(clone_flags, p); 1316 retval = sched_fork(clone_flags, p);
1317 if (retval)
1318 goto bad_fork_cleanup_policy;
1315 1319
1316 retval = perf_event_init_task(p); 1320 retval = perf_event_init_task(p);
1317 if (retval) 1321 if (retval)
@@ -1403,13 +1407,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
1403 p->tgid = p->pid; 1407 p->tgid = p->pid;
1404 } 1408 }
1405 1409
1406 p->pdeath_signal = 0;
1407 p->exit_state = 0;
1408
1409 p->nr_dirtied = 0; 1410 p->nr_dirtied = 0;
1410 p->nr_dirtied_pause = 128 >> (PAGE_SHIFT - 10); 1411 p->nr_dirtied_pause = 128 >> (PAGE_SHIFT - 10);
1411 p->dirty_paused_when = 0; 1412 p->dirty_paused_when = 0;
1412 1413
1414 p->pdeath_signal = 0;
1413 INIT_LIST_HEAD(&p->thread_group); 1415 INIT_LIST_HEAD(&p->thread_group);
1414 p->task_works = NULL; 1416 p->task_works = NULL;
1415 1417