summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorFabio Checconi <fchecconi@gmail.com>2009-06-15 20:56:38 +0200
committerIngo Molnar <mingo@elte.hu>2009-07-10 10:43:30 +0200
commitc20b08e3986c2dbfa6df1e880bf4f7159994d199 (patch)
treeea539701a3cf78b8e2f1d2aab2a2ec442d00f690 /kernel
parent7793527b90d9418211f4fe8464cc1dcb1631ea1b (diff)
downloadlinux-2.6-c20b08e3986c2dbfa6df1e880bf4f7159994d199.tar.gz
linux-2.6-c20b08e3986c2dbfa6df1e880bf4f7159994d199.tar.xz
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')
-rw-r--r--kernel/sched.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index c4549bd7e17..efecfdad1b5 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)
#ifdef CONFIG_SMP
rt_rq->rt_nr_migratory = 0;
rt_rq->overloaded = 0;
- plist_head_init(&rq->rt.pushable_tasks, &rq->lock);
+ plist_head_init(&rt_rq->pushable_tasks, &rq->lock);
#endif
rt_rq->rt_time = 0;