diff options
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 166b8c49257c..889730cce3ad 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -74,6 +74,9 @@ | |||
74 | 74 | ||
75 | #include <trace/events/sched.h> | 75 | #include <trace/events/sched.h> |
76 | 76 | ||
77 | #include <litmus/litmus.h> | ||
78 | #include <litmus/sched_plugin.h> | ||
79 | |||
77 | /* | 80 | /* |
78 | * Protected counters by write_lock_irq(&tasklist_lock) | 81 | * Protected counters by write_lock_irq(&tasklist_lock) |
79 | */ | 82 | */ |
@@ -162,6 +165,7 @@ void __put_task_struct(struct task_struct *tsk) | |||
162 | WARN_ON(atomic_read(&tsk->usage)); | 165 | WARN_ON(atomic_read(&tsk->usage)); |
163 | WARN_ON(tsk == current); | 166 | WARN_ON(tsk == current); |
164 | 167 | ||
168 | exit_litmus(tsk); | ||
165 | exit_creds(tsk); | 169 | exit_creds(tsk); |
166 | delayacct_tsk_free(tsk); | 170 | delayacct_tsk_free(tsk); |
167 | 171 | ||
@@ -244,6 +248,9 @@ static struct task_struct *dup_task_struct(struct task_struct *orig) | |||
244 | 248 | ||
245 | tsk->stack = ti; | 249 | tsk->stack = ti; |
246 | 250 | ||
251 | /* Don't let the new task be a real-time task. */ | ||
252 | memset(&tsk->rt_param, 0, sizeof(struct rt_task)); | ||
253 | |||
247 | err = prop_local_init_single(&tsk->dirties); | 254 | err = prop_local_init_single(&tsk->dirties); |
248 | if (err) | 255 | if (err) |
249 | goto out; | 256 | goto out; |