aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2007-05-13 22:25:38 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2007-05-13 22:25:38 -0400
commit4791a27f872d536da02d36c1c85c35f68007960b (patch)
treead3b9715e0f3016d2cdaad5d491662564076cc94 /kernel
parent47540d93cc0ecf9baef6a132ea370d9fcad5422b (diff)
Streamline PI implementation a little.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched_gsn_edf.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/kernel/sched_gsn_edf.c b/kernel/sched_gsn_edf.c
index 975316e763..d007eb82c7 100644
--- a/kernel/sched_gsn_edf.c
+++ b/kernel/sched_gsn_edf.c
@@ -556,20 +556,21 @@ static long gsnedf_exit_np(struct task_struct * t)
556 return ret; 556 return ret;
557} 557}
558 558
559static noinline long gsnedf_handle_priority_change(struct task_struct *t) 559static long gsnedf_handle_priority_change(struct task_struct *t)
560{ 560{
561 unsigned long flags; 561 unsigned long flags;
562 int ret = 0; 562 int ret = 0;
563 563
564 BUG_ON(!t);
564 queue_lock_irqsave(&gsnedf_lock, flags); 565 queue_lock_irqsave(&gsnedf_lock, flags);
565 566
566 /* debug: a task can only unlink and reschedule itself! */
567 if (t /*&& t == current*/) {
568 TRACE("PRIO %d inh %d\n", t->pid, t->rt_param.inh_task?t->rt_param.inh_task->pid:-666);
569 567
570 unlink(t); 568 TRACE("PRIO %d inh %d\n", t->pid,
571 gsnedf_job_arrival(t); /* requeue/link as appropriate */ 569 t->rt_param.inh_task ? t->rt_param.inh_task->pid : 0);
572 } 570
571 unlink(t);
572 gsnedf_job_arrival(t); /* requeue/link as appropriate */
573
573 574
574 queue_unlock_irqrestore(&gsnedf_lock, flags); 575 queue_unlock_irqrestore(&gsnedf_lock, flags);
575 576