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 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; |