diff options
Diffstat (limited to 'arch/sh/include/asm/futex-irq.h')
| -rw-r--r-- | arch/sh/include/asm/futex-irq.h | 25 | 
1 files changed, 12 insertions, 13 deletions
diff --git a/arch/sh/include/asm/futex-irq.h b/arch/sh/include/asm/futex-irq.h index a9f16a7f9ae..63d33129ea2 100644 --- a/arch/sh/include/asm/futex-irq.h +++ b/arch/sh/include/asm/futex-irq.h @@ -1,9 +1,8 @@  #ifndef __ASM_SH_FUTEX_IRQ_H  #define __ASM_SH_FUTEX_IRQ_H -#include <asm/system.h> -static inline int atomic_futex_op_xchg_set(int oparg, int __user *uaddr, +static inline int atomic_futex_op_xchg_set(int oparg, u32 __user *uaddr,  					   int *oldval)  {  	unsigned long flags; @@ -20,7 +19,7 @@ static inline int atomic_futex_op_xchg_set(int oparg, int __user *uaddr,  	return ret;  } -static inline int atomic_futex_op_xchg_add(int oparg, int __user *uaddr, +static inline int atomic_futex_op_xchg_add(int oparg, u32 __user *uaddr,  					   int *oldval)  {  	unsigned long flags; @@ -37,7 +36,7 @@ static inline int atomic_futex_op_xchg_add(int oparg, int __user *uaddr,  	return ret;  } -static inline int atomic_futex_op_xchg_or(int oparg, int __user *uaddr, +static inline int atomic_futex_op_xchg_or(int oparg, u32 __user *uaddr,  					  int *oldval)  {  	unsigned long flags; @@ -54,7 +53,7 @@ static inline int atomic_futex_op_xchg_or(int oparg, int __user *uaddr,  	return ret;  } -static inline int atomic_futex_op_xchg_and(int oparg, int __user *uaddr, +static inline int atomic_futex_op_xchg_and(int oparg, u32 __user *uaddr,  					   int *oldval)  {  	unsigned long flags; @@ -71,7 +70,7 @@ static inline int atomic_futex_op_xchg_and(int oparg, int __user *uaddr,  	return ret;  } -static inline int atomic_futex_op_xchg_xor(int oparg, int __user *uaddr, +static inline int atomic_futex_op_xchg_xor(int oparg, u32 __user *uaddr,  					   int *oldval)  {  	unsigned long flags; @@ -88,11 +87,13 @@ static inline int atomic_futex_op_xchg_xor(int oparg, int __user *uaddr,  	return ret;  } -static inline int atomic_futex_op_cmpxchg_inatomic(int __user *uaddr, -						   int oldval, int newval) +static inline int atomic_futex_op_cmpxchg_inatomic(u32 *uval, +						   u32 __user *uaddr, +						   u32 oldval, u32 newval)  {  	unsigned long flags; -	int ret, prev = 0; +	int ret; +	u32 prev = 0;  	local_irq_save(flags); @@ -102,10 +103,8 @@ static inline int atomic_futex_op_cmpxchg_inatomic(int __user *uaddr,  	local_irq_restore(flags); -	if (ret) -		return ret; - -	return prev; +	*uval = prev; +	return ret;  }  #endif /* __ASM_SH_FUTEX_IRQ_H */  | 
