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 c445f8cc408d..ab7f29d906c7 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 | */ |
@@ -183,6 +186,7 @@ void __put_task_struct(struct task_struct *tsk) | |||
183 | WARN_ON(atomic_read(&tsk->usage)); | 186 | WARN_ON(atomic_read(&tsk->usage)); |
184 | WARN_ON(tsk == current); | 187 | WARN_ON(tsk == current); |
185 | 188 | ||
189 | exit_litmus(tsk); | ||
186 | exit_creds(tsk); | 190 | exit_creds(tsk); |
187 | delayacct_tsk_free(tsk); | 191 | delayacct_tsk_free(tsk); |
188 | put_signal_struct(tsk->signal); | 192 | put_signal_struct(tsk->signal); |
@@ -266,6 +270,9 @@ static struct task_struct *dup_task_struct(struct task_struct *orig) | |||
266 | 270 | ||
267 | tsk->stack = ti; | 271 | tsk->stack = ti; |
268 | 272 | ||
273 | /* Don't let the new task be a real-time task. */ | ||
274 | litmus_fork(tsk); | ||
275 | |||
269 | err = prop_local_init_single(&tsk->dirties); | 276 | err = prop_local_init_single(&tsk->dirties); |
270 | if (err) | 277 | if (err) |
271 | goto out; | 278 | goto out; |