sched_rt: Fix overload bug on rt group scheduling
authorPeter Zijlstra <peterz@infradead.org>
Wed, 1 Apr 2009 16:40:15 +0000 (18:40 +0200)
committerIngo Molnar <mingo@elte.hu>
Fri, 10 Jul 2009 08:43:29 +0000 (10:43 +0200)
commita1ba4d8ba9f06a397e97cbd67a93ee306860b40a
treef0e0f92a2c0763f8ec162c2b0e2abc389075b207
parentd4ec36bac3de39b7e10ec8f42fbdd20d9a9ed753
sched_rt: Fix overload bug on rt group scheduling

Fixes an easily triggerable BUG() when setting process affinities.

Make sure to count the number of migratable tasks in the same place:
the root rt_rq. Otherwise the number doesn't make sense and we'll hit
the BUG in set_cpus_allowed_rt().

Also, make sure we only count tasks, not groups (this is probably
already taken care of by the fact that rt_se->nr_cpus_allowed will be 0
for groups, but be more explicit)

Tested-by: Thomas Gleixner <tglx@linutronix.de>
CC: stable@kernel.org
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Gregory Haskins <ghaskins@novell.com>
LKML-Reference: <1247067476.9777.57.camel@twins>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched.c
kernel/sched_rt.c