aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/ikglp_lock.c
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2013-01-21 20:00:29 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2013-01-21 20:00:29 -0500
commit95717fa9f4b9f725928e898c42fb0e711e896311 (patch)
tree6c552bd879cdafcd90b6bdacdc167338dd3189bf /litmus/ikglp_lock.c
parent84aa3706d63edda13560ff812740cac0adf744e1 (diff)
Fixed case where blocked tasks are released.
Fixed bug where AUX tasks were being added to the ready queue while those AUX tasks were actually blocked. Bug stems from the fact that the AUX tasks do not make themselves realtime, but another thread does this instead. Also fixed minor bugs elsewhere. NOTE: ONLY FIXES C-EDF. OTHER PLUGINS REMAIN TO BE FIXED.
Diffstat (limited to 'litmus/ikglp_lock.c')
-rw-r--r--litmus/ikglp_lock.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/litmus/ikglp_lock.c b/litmus/ikglp_lock.c
index aa6b659e437d..170c43fcc78e 100644
--- a/litmus/ikglp_lock.c
+++ b/litmus/ikglp_lock.c
@@ -870,7 +870,8 @@ static void ikglp_enqueue_on_donor(struct ikglp_semaphore *sem,
870 } 870 }
871 else { 871 else {
872 TRACE_TASK(t, "No change in effective priority (it is %d/%s). BUG?\n", 872 TRACE_TASK(t, "No change in effective priority (it is %d/%s). BUG?\n",
873 new_max_eff_prio->comm, new_max_eff_prio->pid); 873 (new_max_eff_prio) ? new_max_eff_prio->comm : "nil",
874 (new_max_eff_prio) ? new_max_eff_prio->pid : -1);
874 raw_spin_unlock(&tsk_rt(donee)->hp_blocked_tasks_lock); 875 raw_spin_unlock(&tsk_rt(donee)->hp_blocked_tasks_lock);
875 unlock_fine_irqrestore(&sem->lock, flags); 876 unlock_fine_irqrestore(&sem->lock, flags);
876 } 877 }