aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2007-09-25 18:53:30 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2007-09-25 18:53:30 -0400
commit73808f4b08407e599989cd79d0cc4434a10da33a (patch)
treee625f0073e0c51f9ac1cd6d662ec7f9020cba3c3 /kernel
parent44dcbf46a795b6ebd124a6a64ab6e067f7eba840 (diff)
Bugfix: don't requeue blocking tasks.
Once the task gets scheduled even though it should be blocked, the system will crash.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched_gsn_edf.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/sched_gsn_edf.c b/kernel/sched_gsn_edf.c
index 3ee7e607d9..3f74296784 100644
--- a/kernel/sched_gsn_edf.c
+++ b/kernel/sched_gsn_edf.c
@@ -387,8 +387,10 @@ static void job_completion(struct task_struct *t)
387 edf_prepare_for_next_period(t); 387 edf_prepare_for_next_period(t);
388 /* unlink */ 388 /* unlink */
389 unlink(t); 389 unlink(t);
390 /* requeue */ 390 /* requeue
391 gsnedf_job_arrival(t); 391 * But on't requeue a blocking task. */
392 if (is_running(t))
393 gsnedf_job_arrival(t);
392} 394}
393 395
394 396