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 4c14942a0ee3..166eb780dd7d 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -75,6 +75,9 @@
75 75
76#include <trace/events/sched.h> 76#include <trace/events/sched.h>
77 77
78#include <litmus/litmus.h>
79#include <litmus/sched_plugin.h>
80
78/* 81/*
79 * Protected counters by write_lock_irq(&tasklist_lock) 82 * Protected counters by write_lock_irq(&tasklist_lock)
80 */ 83 */
@@ -171,6 +174,7 @@ void __put_task_struct(struct task_struct *tsk)
171 WARN_ON(atomic_read(&tsk->usage)); 174 WARN_ON(atomic_read(&tsk->usage));
172 WARN_ON(tsk == current); 175 WARN_ON(tsk == current);
173 176
177 exit_litmus(tsk);
174 exit_creds(tsk); 178 exit_creds(tsk);
175 delayacct_tsk_free(tsk); 179 delayacct_tsk_free(tsk);
176 180
@@ -253,6 +257,9 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
253 257
254 tsk->stack = ti; 258 tsk->stack = ti;
255 259
260 /* Don't let the new task be a real-time task. */
261 litmus_fork(tsk);
262
256 err = prop_local_init_single(&tsk->dirties); 263 err = prop_local_init_single(&tsk->dirties);
257 if (err) 264 if (err)
258 goto out; 265 goto out;