aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/sched_psn_edf.c
diff options
context:
space:
mode:
authorleochanj05 <leochanj@live.unc.edu>2020-09-20 07:07:03 -0400
committerleochanj05 <leochanj@live.unc.edu>2020-09-23 17:57:08 -0400
commitced6e8eb0bb83d244c5e31413fd6e83c90edc2cc (patch)
tree5a454ad7de7dc23c4410bb4be0dc06453fef9020 /litmus/sched_psn_edf.c
parent488afce2268629a88d060fd0f98ae511ccb75f66 (diff)
initial fixes
Diffstat (limited to 'litmus/sched_psn_edf.c')
-rw-r--r--litmus/sched_psn_edf.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/litmus/sched_psn_edf.c b/litmus/sched_psn_edf.c
index 134019247b08..58fb372d2d12 100644
--- a/litmus/sched_psn_edf.c
+++ b/litmus/sched_psn_edf.c
@@ -183,8 +183,8 @@ static struct task_struct* psnedf_schedule(struct task_struct * prev)
183 * differently from gedf, when a task exits (dead) 183 * differently from gedf, when a task exits (dead)
184 * pedf->schedule may be null and prev _is_ realtime 184 * pedf->schedule may be null and prev _is_ realtime
185 */ 185 */
186 BUG_ON(pedf->scheduled && pedf->scheduled != prev); 186 BUG_ON(prev && pedf->scheduled && pedf->scheduled != prev);
187 BUG_ON(pedf->scheduled && !is_realtime(prev)); 187 BUG_ON(prev && pedf->scheduled && !is_realtime(prev));
188 188
189 /* (0) Determine state */ 189 /* (0) Determine state */
190 exists = pedf->scheduled != NULL; 190 exists = pedf->scheduled != NULL;
@@ -193,7 +193,7 @@ static struct task_struct* psnedf_schedule(struct task_struct * prev)
193 && budget_exhausted(pedf->scheduled); 193 && budget_exhausted(pedf->scheduled);
194 np = exists && is_np(pedf->scheduled); 194 np = exists && is_np(pedf->scheduled);
195 sleep = exists && is_completed(pedf->scheduled); 195 sleep = exists && is_completed(pedf->scheduled);
196 preempt = edf_preemption_needed(edf, prev); 196 preempt = !prev || edf_preemption_needed(edf, prev);
197 197
198 /* If we need to preempt do so. 198 /* If we need to preempt do so.
199 * The following checks set resched to 1 in case of special 199 * The following checks set resched to 1 in case of special