aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2011-07-25 11:43:13 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2011-07-25 11:43:13 -0400
commit403d52473e4db8604ac559fa4c62ac347a35821c (patch)
tree8a4b3ed247823890c1e03c6bea5e32b17c7b1aeb
parentd15b45aa2bec803ad4007bdaea983bb0db472e1e (diff)
fixup: PCP called with preemptions off
-rw-r--r--litmus/sched_pfp.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/litmus/sched_pfp.c b/litmus/sched_pfp.c
index 6ea03d6aeea7..7f9a49d9d373 100644
--- a/litmus/sched_pfp.c
+++ b/litmus/sched_pfp.c
@@ -997,6 +997,7 @@ static void pcp_priority_inheritance(void)
997 raw_spin_unlock_irqrestore(&pfp->slock, flags); 997 raw_spin_unlock_irqrestore(&pfp->slock, flags);
998} 998}
999 999
1000/* called with preemptions off */
1000static void pcp_raise_ceiling(struct pcp_semaphore* sem, 1001static void pcp_raise_ceiling(struct pcp_semaphore* sem,
1001 int effective_prio) 1002 int effective_prio)
1002{ 1003{
@@ -1005,8 +1006,6 @@ static void pcp_raise_ceiling(struct pcp_semaphore* sem,
1005 prio_wait_queue_t wait; 1006 prio_wait_queue_t wait;
1006 unsigned int waiting_higher_prio; 1007 unsigned int waiting_higher_prio;
1007 1008
1008 preempt_disable();
1009
1010 do { 1009 do {
1011 ceiling = pcp_get_ceiling(); 1010 ceiling = pcp_get_ceiling();
1012 if (pcp_exceeds_ceiling(ceiling, t, effective_prio)) 1011 if (pcp_exceeds_ceiling(ceiling, t, effective_prio))
@@ -1044,8 +1043,6 @@ static void pcp_raise_ceiling(struct pcp_semaphore* sem,
1044 sem->owner = t; 1043 sem->owner = t;
1045 1044
1046 pcp_add_ceiling(sem); 1045 pcp_add_ceiling(sem);
1047
1048 preempt_enable();
1049} 1046}
1050 1047
1051static void pcp_resume_unblocked(void) 1048static void pcp_resume_unblocked(void)