diff options
author | Fabio Checconi <fchecconi@gmail.com> | 2009-06-15 14:56:38 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-07-10 04:43:30 -0400 |
commit | c20b08e3986c2dbfa6df1e880bf4f7159994d199 (patch) | |
tree | ea539701a3cf78b8e2f1d2aab2a2ec442d00f690 /kernel/sched.c | |
parent | 7793527b90d9418211f4fe8464cc1dcb1631ea1b (diff) |
sched: Fix rt_rq->pushable_tasks initialization in init_rt_rq()
init_rt_rq() initializes only rq->rt.pushable_tasks, and not the
pushable_tasks field of the passed rt_rq. The plist is not used
uninitialized since the only pushable_tasks plists used are the
ones of root rt_rqs; anyway reinitializing the list on every group
creation corrupts the root plist, losing its previous contents.
Signed-off-by: Fabio Checconi <fabio@gandalf.sssup.it>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <20090615185638.GK21741@gandalf.sssup.it>
CC: Gregory Haskins <ghaskins@novell.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index c4549bd7e174..efecfdad1b5f 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -9093,7 +9093,7 @@ static void init_rt_rq(struct rt_rq *rt_rq, struct rq *rq) | |||
9093 | #ifdef CONFIG_SMP | 9093 | #ifdef CONFIG_SMP |
9094 | rt_rq->rt_nr_migratory = 0; | 9094 | rt_rq->rt_nr_migratory = 0; |
9095 | rt_rq->overloaded = 0; | 9095 | rt_rq->overloaded = 0; |
9096 | plist_head_init(&rq->rt.pushable_tasks, &rq->lock); | 9096 | plist_head_init(&rt_rq->pushable_tasks, &rq->lock); |
9097 | #endif | 9097 | #endif |
9098 | 9098 | ||
9099 | rt_rq->rt_time = 0; | 9099 | rt_rq->rt_time = 0; |