diff options
author | Bjoern Brandenburg <bbb@mpi-sws.org> | 2013-07-25 16:56:55 -0400 |
---|---|---|
committer | Bjoern Brandenburg <bbb@mpi-sws.org> | 2014-06-07 05:31:05 -0400 |
commit | 956db603db2c439a083d8e180191cb39b7a3091b (patch) | |
tree | 1982348f405e167056184af1a9f998253a3aa78c | |
parent | ca1812816b4a3c02c18bf5dfb6a58fb323d4526c (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 | ||