aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/fork.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/fork.c')
-rw-r--r--kernel/fork.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index f65fa0627c0..067992d4838 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -76,6 +76,9 @@
76 76
77#include <trace/events/sched.h> 77#include <trace/events/sched.h>
78 78
79#include <litmus/litmus.h>
80#include <litmus/sched_plugin.h>
81
79/* 82/*
80 * Protected counters by write_lock_irq(&tasklist_lock) 83 * Protected counters by write_lock_irq(&tasklist_lock)
81 */ 84 */
@@ -205,6 +208,7 @@ void __put_task_struct(struct task_struct *tsk)
205 WARN_ON(atomic_read(&tsk->usage)); 208 WARN_ON(atomic_read(&tsk->usage));
206 WARN_ON(tsk == current); 209 WARN_ON(tsk == current);
207 210
211 exit_litmus(tsk);
208 exit_creds(tsk); 212 exit_creds(tsk);
209 delayacct_tsk_free(tsk); 213 delayacct_tsk_free(tsk);
210 put_signal_struct(tsk->signal); 214 put_signal_struct(tsk->signal);
@@ -290,6 +294,9 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
290 294
291 tsk->stack = ti; 295 tsk->stack = ti;
292 296
297 /* Don't let the new task be a real-time task. */
298 litmus_fork(tsk);
299
293 err = prop_local_init_single(&tsk->dirties); 300 err = prop_local_init_single(&tsk->dirties);
294 if (err) 301 if (err)
295 goto out; 302 goto out;