From 6d4cc883ec2470500be6c95fd2e7c6944e89c3e8 Mon Sep 17 00:00:00 2001 From: "Bjoern B. Brandenburg" Date: Sat, 12 Feb 2011 16:40:43 -0500 Subject: bugfix: release master CPU must signal task was picked Otherwise, the release master CPU may try to reschedule in an infinite loop. --- litmus/sched_gsn_edf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/litmus/sched_gsn_edf.c b/litmus/sched_gsn_edf.c index 08b8847ede97..3092797480f8 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) /* Bail out early if we are the release master. * The release master never schedules any real-time tasks. */ - if (gsnedf.release_master == entry->cpu) + if (gsnedf.release_master == entry->cpu) { + sched_state_task_picked(); return NULL; + } #endif raw_spin_lock(&gsnedf_lock); -- cgit v1.2.2