diff options
author | Bjoern Brandenburg <bbb@mpi-sws.org> | 2013-07-25 16:56:55 -0400 |
---|---|---|
committer | Namhoon Kim <namhoonk@cs.unc.edu> | 2014-10-21 10:08:00 -0400 |
commit | 2c85fa0767ce6355759868583a9eeedb1feb384f (patch) | |
tree | 5b66cdf18a676f402cda31631aba1ad617b98e46 | |
parent | e801a3104619e8dbee8e1fed05402f160d8f790d (diff) |
Don't call set_tsk_need_resched() on remote LITMUS^RT task
This patch fixes a BUG_ON() in litmus/preempt.c:33 reported by Felipe
Cerqueira & Manohar Vanga.
-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 1be8a352f32e..6bced0e430bb 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -526,9 +526,14 @@ void resched_task(struct task_struct *p) | |||
526 | if (test_tsk_need_resched(p)) | 526 | if (test_tsk_need_resched(p)) |
527 | return; | 527 | return; |
528 | 528 | ||
529 | set_tsk_need_resched(p); | ||
530 | |||
531 | cpu = task_cpu(p); | 529 | cpu = task_cpu(p); |
530 | |||
531 | /* Cannot call set_tsk_need_resched() on LITMUS^RT task | ||
532 | * on remote core. Only policy plugins may do this via | ||
533 | * litmus_reschedule(). */ | ||
534 | if (!is_realtime(p) || cpu == smp_processor_id()) | ||
535 | set_tsk_need_resched(p); | ||
536 | |||
532 | if (cpu == smp_processor_id()) | 537 | if (cpu == smp_processor_id()) |
533 | return; | 538 | return; |
534 | 539 | ||