sched: Fix update_curr_rt()
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Wed, 2 Feb 2011 12:19:48 +0000 (13:19 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 17 Feb 2011 23:14:40 +0000 (15:14 -0800)
commit1cdc65e1400d863f28af868ee1e645485b04f5ed
tree35a4af18c9348c748abdea479f488a5d8bb46222
parent44e6ae1221d8cfb07d802c8051424c239a0e2d60
sched: Fix update_curr_rt()

commit 06c3bc655697b19521901f9254eb0bbb2c67e7e8 upstream.

cpu_stopper_thread()
  migration_cpu_stop()
    __migrate_task()
      deactivate_task()
        dequeue_task()
          dequeue_task_rq()
            update_curr_rt()

Will call update_curr_rt() on rq->curr, which at that time is
rq->stop. The problem is that rq->stop.prio matches an RT prio and
thus falsely assumes its a rt_sched_class task.

Reported-Debuged-Tested-Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
kernel/sched_rt.c