diff options
author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2007-09-25 18:53:30 -0400 |
---|---|---|
committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2007-09-25 18:53:30 -0400 |
commit | 73808f4b08407e599989cd79d0cc4434a10da33a (patch) | |
tree | e625f0073e0c51f9ac1cd6d662ec7f9020cba3c3 /kernel | |
parent | 44dcbf46a795b6ebd124a6a64ab6e067f7eba840 (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.c | 6 |
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 | ||