summary refs log tree commit diff
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-c20b08e3986c2dbfa6df1e880bf4f7159994d199.tar.gz
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 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)
 #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;