diff options
author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2011-02-12 16:40:43 -0500 |
---|---|---|
committer | Jonathan <hermanjl@bonham.cs.unc.edu> | 2011-04-21 15:28:17 -0400 |
commit | 9ad36912200db8b5976ff33e03cfa713c2765d4d (patch) | |
tree | 58d1ca8953bbb8b8207ecee7120e55950eeac412 | |
parent | 7cb15e61e4ce73eb427b095f266a10a668c80704 (diff) |
bugfix: release master CPU must signal task was picked
Otherwise, the release master CPU may try to reschedule in an infinite
loop.
-rw-r--r-- | litmus/sched_gsn_edf.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/litmus/sched_gsn_edf.c b/litmus/sched_gsn_edf.c index c5c9600c33d8..2a649beed791 100644 --- a/litmus/sched_gsn_edf.c +++ b/litmus/sched_gsn_edf.c | |||
@@ -374,8 +374,10 @@ static struct task_struct* gsnedf_schedule(struct task_struct * prev) | |||
374 | /* Bail out early if we are the release master. | 374 | /* Bail out early if we are the release master. |
375 | * The release master never schedules any real-time tasks. | 375 | * The release master never schedules any real-time tasks. |
376 | */ | 376 | */ |
377 | if (gsnedf.release_master == entry->cpu) | 377 | if (gsnedf.release_master == entry->cpu) { |
378 | sched_state_task_picked(); | ||
378 | return NULL; | 379 | return NULL; |
380 | } | ||
379 | #endif | 381 | #endif |
380 | 382 | ||
381 | raw_spin_lock(&gsnedf_lock); | 383 | raw_spin_lock(&gsnedf_lock); |