diff options
-rw-r--r-- | litmus/sched_litmus.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/litmus/sched_litmus.c b/litmus/sched_litmus.c index c65388969789..52afec278ec8 100644 --- a/litmus/sched_litmus.c +++ b/litmus/sched_litmus.c | |||
@@ -157,6 +157,16 @@ static void enqueue_task_litmus(struct rq *rq, struct task_struct *p, | |||
157 | if (wakeup) { | 157 | if (wakeup) { |
158 | sched_trace_task_resume(p); | 158 | sched_trace_task_resume(p); |
159 | tsk_rt(p)->present = 1; | 159 | tsk_rt(p)->present = 1; |
160 | /* LITMUS^RT plugins need to update the state | ||
161 | * _before_ making it available in global structures. | ||
162 | * Linux gets away with being lazy about the task state | ||
163 | * update. We can't do that, hence we update the task | ||
164 | * state already here. | ||
165 | * | ||
166 | * WARNING: this needs to be re-evaluated when porting | ||
167 | * to newer kernel versions. | ||
168 | */ | ||
169 | p->state = TASK_RUNNING; | ||
160 | litmus->task_wake_up(p); | 170 | litmus->task_wake_up(p); |
161 | 171 | ||
162 | rq->litmus.nr_running++; | 172 | rq->litmus.nr_running++; |