aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Herman <hermanjl@cs.unc.edu>2011-10-09 02:51:55 -0400
committerJonathan Herman <hermanjl@cs.unc.edu>2011-10-09 02:51:55 -0400
commit75a56ba6a0321945786486070bf17882f4265907 (patch)
tree226ba500a9aa2fd18abdd44c80b594d2d7078d2d
parent3d39c63ff7b9ec086fd8004951af439757a2fd49 (diff)
Fixed bug with CE higher priority
-rw-r--r--litmus/ce_domain.c5
-rw-r--r--litmus/event_group.c3
2 files changed, 2 insertions, 6 deletions
diff --git a/litmus/ce_domain.c b/litmus/ce_domain.c
index 5e1f7ccc000c..fd9904e29a08 100644
--- a/litmus/ce_domain.c
+++ b/litmus/ce_domain.c
@@ -67,12 +67,11 @@ struct task_struct* ce_peek_and_take_ready(domain_t *dom)
67 return ret; 67 return ret;
68} 68}
69 69
70int ce_higher_prio(struct task_struct *_a, struct task_struct *_b) 70int ce_higher_prio(struct task_struct *a, struct task_struct *b)
71{ 71{
72 const struct task_struct *a = _a;
73 const domain_t *dom = get_task_domain(a); 72 const domain_t *dom = get_task_domain(a);
74 const struct ce_dom_data *ce_data = dom->data; 73 const struct ce_dom_data *ce_data = dom->data;
75 return (a == ce_data->should_schedule); 74 return (a != b && a == ce_data->should_schedule);
76} 75}
77 76
78void ce_domain_init(domain_t *dom, 77void ce_domain_init(domain_t *dom,
diff --git a/litmus/event_group.c b/litmus/event_group.c
index f2ee9158294b..0535f9f9bf96 100644
--- a/litmus/event_group.c
+++ b/litmus/event_group.c
@@ -37,9 +37,6 @@ static enum hrtimer_restart on_timer(struct hrtimer *timer)
37 37
38 el = container_of(timer, struct event_list, timer); 38 el = container_of(timer, struct event_list, timer);
39 39
40 VTRACE("Firing event at time %llu or %llu",
41 ktime_to_ns(timer->_expires), ktime_to_ns(timer->_softexpires));
42
43 raw_spin_lock_irqsave(&el->group->queue_lock, flags); 40 raw_spin_lock_irqsave(&el->group->queue_lock, flags);
44 VTRACE("Removing event list 0x%p\n", el); 41 VTRACE("Removing event list 0x%p\n", el);
45 list_del_init(&el->queue_node); 42 list_del_init(&el->queue_node);