diff options
-rw-r--r-- | kernel/sched/core.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index c202f946f54f..344855ef752d 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -529,9 +529,14 @@ void resched_task(struct task_struct *p) | |||
529 | if (test_tsk_need_resched(p)) | 529 | if (test_tsk_need_resched(p)) |
530 | return; | 530 | return; |
531 | 531 | ||
532 | set_tsk_need_resched(p); | ||
533 | |||
534 | cpu = task_cpu(p); | 532 | cpu = task_cpu(p); |
533 | |||
534 | /* Cannot call set_tsk_need_resched() on LITMUS^RT task | ||
535 | * on remote core. Only policy plugins may do this via | ||
536 | * litmus_reschedule(). */ | ||
537 | if (!is_realtime(p) || cpu == smp_processor_id()) | ||
538 | set_tsk_need_resched(p); | ||
539 | |||
535 | if (cpu == smp_processor_id()) | 540 | if (cpu == smp_processor_id()) |
536 | return; | 541 | return; |
537 | 542 | ||