diff options
Diffstat (limited to 'arch/mips/include/asm/local.h')
-rw-r--r-- | arch/mips/include/asm/local.h | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/arch/mips/include/asm/local.h b/arch/mips/include/asm/local.h index 361f4f16c30c..bdcdef02d147 100644 --- a/arch/mips/include/asm/local.h +++ b/arch/mips/include/asm/local.h | |||
@@ -193,29 +193,4 @@ static __inline__ long local_sub_return(long i, local_t * l) | |||
193 | #define __local_add(i, l) ((l)->a.counter+=(i)) | 193 | #define __local_add(i, l) ((l)->a.counter+=(i)) |
194 | #define __local_sub(i, l) ((l)->a.counter-=(i)) | 194 | #define __local_sub(i, l) ((l)->a.counter-=(i)) |
195 | 195 | ||
196 | /* Need to disable preemption for the cpu local counters otherwise we could | ||
197 | still access a variable of a previous CPU in a non atomic way. */ | ||
198 | #define cpu_local_wrap_v(l) \ | ||
199 | ({ local_t res__; \ | ||
200 | preempt_disable(); \ | ||
201 | res__ = (l); \ | ||
202 | preempt_enable(); \ | ||
203 | res__; }) | ||
204 | #define cpu_local_wrap(l) \ | ||
205 | ({ preempt_disable(); \ | ||
206 | l; \ | ||
207 | preempt_enable(); }) \ | ||
208 | |||
209 | #define cpu_local_read(l) cpu_local_wrap_v(local_read(&__get_cpu_var(l))) | ||
210 | #define cpu_local_set(l, i) cpu_local_wrap(local_set(&__get_cpu_var(l), (i))) | ||
211 | #define cpu_local_inc(l) cpu_local_wrap(local_inc(&__get_cpu_var(l))) | ||
212 | #define cpu_local_dec(l) cpu_local_wrap(local_dec(&__get_cpu_var(l))) | ||
213 | #define cpu_local_add(i, l) cpu_local_wrap(local_add((i), &__get_cpu_var(l))) | ||
214 | #define cpu_local_sub(i, l) cpu_local_wrap(local_sub((i), &__get_cpu_var(l))) | ||
215 | |||
216 | #define __cpu_local_inc(l) cpu_local_inc(l) | ||
217 | #define __cpu_local_dec(l) cpu_local_dec(l) | ||
218 | #define __cpu_local_add(i, l) cpu_local_add((i), (l)) | ||
219 | #define __cpu_local_sub(i, l) cpu_local_sub((i), (l)) | ||
220 | |||
221 | #endif /* _ARCH_MIPS_LOCAL_H */ | 196 | #endif /* _ARCH_MIPS_LOCAL_H */ |