diff options
Diffstat (limited to 'arch/mips/include/asm/futex.h')
| -rw-r--r-- | arch/mips/include/asm/futex.h | 25 | 
1 files changed, 13 insertions, 12 deletions
diff --git a/arch/mips/include/asm/futex.h b/arch/mips/include/asm/futex.h index 6ea15815d3e..194cda0396a 100644 --- a/arch/mips/include/asm/futex.h +++ b/arch/mips/include/asm/futex.h @@ -12,6 +12,7 @@  #include <linux/futex.h>  #include <linux/uaccess.h> +#include <asm/asm-eva.h>  #include <asm/barrier.h>  #include <asm/errno.h>  #include <asm/war.h> @@ -22,11 +23,11 @@  		__asm__ __volatile__(					\  		"	.set	push				\n"	\  		"	.set	noat				\n"	\ -		"	.set	mips3				\n"	\ +		"	.set	arch=r4000			\n"	\  		"1:	ll	%1, %4	# __futex_atomic_op	\n"	\  		"	.set	mips0				\n"	\  		"	" insn	"				\n"	\ -		"	.set	mips3				\n"	\ +		"	.set	arch=r4000			\n"	\  		"2:	sc	$1, %2				\n"	\  		"	beqzl	$1, 1b				\n"	\  		__WEAK_LLSC_MB						\ @@ -48,12 +49,12 @@  		__asm__ __volatile__(					\  		"	.set	push				\n"	\  		"	.set	noat				\n"	\ -		"	.set	mips3				\n"	\ -		"1:	ll	%1, %4	# __futex_atomic_op	\n"	\ +		"	.set	arch=r4000			\n"	\ +		"1:	"user_ll("%1", "%4")" # __futex_atomic_op\n"	\  		"	.set	mips0				\n"	\  		"	" insn	"				\n"	\ -		"	.set	mips3				\n"	\ -		"2:	sc	$1, %2				\n"	\ +		"	.set	arch=r4000			\n"	\ +		"2:	"user_sc("$1", "%2")"			\n"	\  		"	beqz	$1, 1b				\n"	\  		__WEAK_LLSC_MB						\  		"3:						\n"	\ @@ -146,12 +147,12 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,  		"# futex_atomic_cmpxchg_inatomic			\n"  		"	.set	push					\n"  		"	.set	noat					\n" -		"	.set	mips3					\n" +		"	.set	arch=r4000				\n"  		"1:	ll	%1, %3					\n"  		"	bne	%1, %z4, 3f				\n"  		"	.set	mips0					\n"  		"	move	$1, %z5					\n" -		"	.set	mips3					\n" +		"	.set	arch=r4000				\n"  		"2:	sc	$1, %2					\n"  		"	beqzl	$1, 1b					\n"  		__WEAK_LLSC_MB @@ -173,13 +174,13 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,  		"# futex_atomic_cmpxchg_inatomic			\n"  		"	.set	push					\n"  		"	.set	noat					\n" -		"	.set	mips3					\n" -		"1:	ll	%1, %3					\n" +		"	.set	arch=r4000				\n" +		"1:	"user_ll("%1", "%3")"				\n"  		"	bne	%1, %z4, 3f				\n"  		"	.set	mips0					\n"  		"	move	$1, %z5					\n" -		"	.set	mips3					\n" -		"2:	sc	$1, %2					\n" +		"	.set	arch=r4000				\n" +		"2:	"user_sc("$1", "%2")"				\n"  		"	beqz	$1, 1b					\n"  		__WEAK_LLSC_MB  		"3:							\n"  | 
