aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-m32r
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-m32r')
-rw-r--r--include/asm-m32r/spinlock.h9
-rw-r--r--include/asm-m32r/system.h4
-rw-r--r--include/asm-m32r/unistd.h5
3 files changed, 13 insertions, 5 deletions
diff --git a/include/asm-m32r/spinlock.h b/include/asm-m32r/spinlock.h
index f94c1a673569..f9f90727a4a1 100644
--- a/include/asm-m32r/spinlock.h
+++ b/include/asm-m32r/spinlock.h
@@ -298,7 +298,14 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw)
298 ); 298 );
299} 299}
300 300
301#define __raw_read_trylock(lock) generic__raw_read_trylock(lock) 301static inline int __raw_read_trylock(raw_rwlock_t *lock)
302{
303 atomic_t *count = (atomic_t*)lock;
304 if (atomic_dec_return(count) >= 0)
305 return 1;
306 atomic_inc(count);
307 return 0;
308}
302 309
303static inline int __raw_write_trylock(raw_rwlock_t *lock) 310static inline int __raw_write_trylock(raw_rwlock_t *lock)
304{ 311{
diff --git a/include/asm-m32r/system.h b/include/asm-m32r/system.h
index 9e618afec6ed..4ce0619f6989 100644
--- a/include/asm-m32r/system.h
+++ b/include/asm-m32r/system.h
@@ -328,15 +328,15 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size)
328#define smp_rmb() rmb() 328#define smp_rmb() rmb()
329#define smp_wmb() wmb() 329#define smp_wmb() wmb()
330#define smp_read_barrier_depends() read_barrier_depends() 330#define smp_read_barrier_depends() read_barrier_depends()
331#define set_mb(var, value) do { (void) xchg(&var, value); } while (0)
331#else 332#else
332#define smp_mb() barrier() 333#define smp_mb() barrier()
333#define smp_rmb() barrier() 334#define smp_rmb() barrier()
334#define smp_wmb() barrier() 335#define smp_wmb() barrier()
335#define smp_read_barrier_depends() do { } while (0) 336#define smp_read_barrier_depends() do { } while (0)
337#define set_mb(var, value) do { var = value; barrier(); } while (0)
336#endif 338#endif
337 339
338#define set_mb(var, value) do { xchg(&var, value); } while (0)
339
340#define arch_align_stack(x) (x) 340#define arch_align_stack(x) (x)
341 341
342#endif /* _ASM_M32R_SYSTEM_H */ 342#endif /* _ASM_M32R_SYSTEM_H */
diff --git a/include/asm-m32r/unistd.h b/include/asm-m32r/unistd.h
index 89f376e6229f..5c6a9ac6cf1a 100644
--- a/include/asm-m32r/unistd.h
+++ b/include/asm-m32r/unistd.h
@@ -296,8 +296,9 @@
296#ifdef __KERNEL__ 296#ifdef __KERNEL__
297 297
298#define NR_syscalls 285 298#define NR_syscalls 285
299#include <linux/err.h>
299 300
300/* user-visible error numbers are in the range -1 - -124: see 301/* user-visible error numbers are in the range -1 - -MAX_ERRNO: see
301 * <asm-m32r/errno.h> 302 * <asm-m32r/errno.h>
302 */ 303 */
303 304
@@ -305,7 +306,7 @@
305 306
306#define __syscall_return(type, res) \ 307#define __syscall_return(type, res) \
307do { \ 308do { \
308 if ((unsigned long)(res) >= (unsigned long)(-(124 + 1))) { \ 309 if ((unsigned long)(res) >= (unsigned long)(-MAX_ERRNO)) { \
309 /* Avoid using "res" which is declared to be in register r0; \ 310 /* Avoid using "res" which is declared to be in register r0; \
310 errno might expand to a function call and clobber it. */ \ 311 errno might expand to a function call and clobber it. */ \
311 int __err = -(res); \ 312 int __err = -(res); \