diff options
author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2007-05-13 22:25:38 -0400 |
---|---|---|
committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2007-05-13 22:25:38 -0400 |
commit | 4791a27f872d536da02d36c1c85c35f68007960b (patch) | |
tree | ad3b9715e0f3016d2cdaad5d491662564076cc94 /kernel | |
parent | 47540d93cc0ecf9baef6a132ea370d9fcad5422b (diff) |
Streamline PI implementation a little.
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/sched_gsn_edf.c | 15 |
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 | ||
559 | static noinline long gsnedf_handle_priority_change(struct task_struct *t) | 559 | static 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 | ||