sched: Fix rt_rq->pushable_tasks initialization in init_rt_rq()
authorFabio Checconi <[email protected]>
Mon, 15 Jun 2009 18:56:38 +0000 (20:56 +0200)
committerIngo Molnar <[email protected]>
Fri, 10 Jul 2009 08:43:30 +0000 (10:43 +0200)
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 <[email protected]>
Signed-off-by: Peter Zijlstra <[email protected]>
LKML-Reference: <20090615185638[email protected]>
CC: Gregory Haskins <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
kernel/sched.c

index c4549bd7e174c4cd019fa6a997e424e8aeb4018c..efecfdad1b5f8f04cf8e1b2a97987d9733429350 100644 (file)
@@ -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;