diff options
author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2011-07-25 11:43:13 -0400 |
---|---|---|
committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2011-07-25 11:43:13 -0400 |
commit | 403d52473e4db8604ac559fa4c62ac347a35821c (patch) | |
tree | 8a4b3ed247823890c1e03c6bea5e32b17c7b1aeb | |
parent | d15b45aa2bec803ad4007bdaea983bb0db472e1e (diff) |
fixup: PCP called with preemptions off
-rw-r--r-- | litmus/sched_pfp.c | 5 |
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 */ | ||
1000 | static void pcp_raise_ceiling(struct pcp_semaphore* sem, | 1001 | static 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 | ||
1051 | static void pcp_resume_unblocked(void) | 1048 | static void pcp_resume_unblocked(void) |