diff options
author | John M. Calandrino <jmc@jupiter-cs.cs.unc.edu> | 2007-05-02 15:19:54 -0400 |
---|---|---|
committer | John M. Calandrino <jmc@jupiter-cs.cs.unc.edu> | 2007-05-02 15:19:54 -0400 |
commit | e0da4b7e417cf28739646f43aa47d8495bc6998b (patch) | |
tree | d313b8e11bea9086e7b75883cbedfd14ce92ae6f /arch | |
parent | 86afe70125df4ee62cef85cbb035c8c9ab353885 (diff) |
Fixed a bug in SRP semaphores after changing to per-processor ceilings.
Diffstat (limited to 'arch')
-rw-r--r-- | arch/i386/kernel/srp_sem_syscalls.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/i386/kernel/srp_sem_syscalls.c b/arch/i386/kernel/srp_sem_syscalls.c index 9c73325cf8..a3ba88b905 100644 --- a/arch/i386/kernel/srp_sem_syscalls.c +++ b/arch/i386/kernel/srp_sem_syscalls.c | |||
@@ -143,9 +143,9 @@ asmlinkage long sys_reg_task_srp_sem(srp_sema_id sem_id, pid_t t_pid) | |||
143 | return -EINVAL; | 143 | return -EINVAL; |
144 | 144 | ||
145 | queue_lock_irqsave(&srp_lock, flags); | 145 | queue_lock_irqsave(&srp_lock, flags); |
146 | if (srp_sems[sem_id] == -1) | 146 | if (srp_sems[sem_id].cpu == -1) |
147 | srp_sems[sem_id] = get_partition(t); | 147 | srp_sems[sem_id].cpu = get_partition(t); |
148 | else if (srp_sems[sem_id] != get_partition(t)) { | 148 | else if (srp_sems[sem_id].cpu != get_partition(t)) { |
149 | queue_unlock_irqrestore(&srp_lock, flags); | 149 | queue_unlock_irqrestore(&srp_lock, flags); |
150 | return -EINVAL; | 150 | return -EINVAL; |
151 | } | 151 | } |
@@ -193,7 +193,7 @@ asmlinkage long sys_srp_sema_free(srp_sema_id sem_id) | |||
193 | srp_higher_prio(srp_sems[sem_ctr].pc_task, | 193 | srp_higher_prio(srp_sems[sem_ctr].pc_task, |
194 | __get_cpu_var(spc_tasks))) | 194 | __get_cpu_var(spc_tasks))) |
195 | __get_cpu_var(spc_tasks) = srp_sems[sem_ctr].pc_task; | 195 | __get_cpu_var(spc_tasks) = srp_sems[sem_ctr].pc_task; |
196 | spc_task[sem_id].cpu = -1; | 196 | srp_sems[sem_id].cpu = -1; |
197 | queue_unlock_irqrestore(&srp_lock, flags); | 197 | queue_unlock_irqrestore(&srp_lock, flags); |
198 | 198 | ||
199 | return 0; | 199 | return 0; |