diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2008-11-04 15:25:08 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-11-05 04:30:13 -0500 |
commit | d95f98d0691d3aba5e35850011946a08c9b36428 (patch) | |
tree | 51cef12b6ad712379b63b04bd5e16292e0bbe8f0 /kernel/sched_fair.c | |
parent | f4b6755fb37595da3630d1d6fc130ea6888cd48f (diff) |
sched: fix fair preempt check
Impact: fix cross-class preemption
Inter-class wakeup preemptions should go on class order.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched_fair.c')
-rw-r--r-- | kernel/sched_fair.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 6167336a2372..ebd6de8d17fd 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c | |||
@@ -1329,6 +1329,9 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int sync) | |||
1329 | return; | 1329 | return; |
1330 | } | 1330 | } |
1331 | 1331 | ||
1332 | if (unlikely(p->sched_class != &fair_sched_class)) | ||
1333 | return; | ||
1334 | |||
1332 | if (unlikely(se == pse)) | 1335 | if (unlikely(se == pse)) |
1333 | return; | 1336 | return; |
1334 | 1337 | ||