diff options
| author | Steve French <sfrench@us.ibm.com> | 2005-10-31 08:36:11 -0800 | 
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2005-10-31 08:36:11 -0800 | 
| commit | 53b2ec5518aa2623e8c0cb36f1c304a797988a46 (patch) | |
| tree | 465d8631ade6c2fcbd7576ff9813d00116c6a1e8 /arch/mips/kernel/semaphore.c | |
| parent | 0753ca7bc2b876dd136e9db11a20f85cbe4e08b1 (diff) | |
| parent | 581c1b14394aee60aff46ea67d05483261ed6527 (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'arch/mips/kernel/semaphore.c')
| -rw-r--r-- | arch/mips/kernel/semaphore.c | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/mips/kernel/semaphore.c b/arch/mips/kernel/semaphore.c index 9c40fe5a8e8..1265358cdca 100644 --- a/arch/mips/kernel/semaphore.c +++ b/arch/mips/kernel/semaphore.c @@ -42,24 +42,28 @@ static inline int __sem_update_count(struct semaphore *sem, int incr)  	if (cpu_has_llsc && R10000_LLSC_WAR) {  		__asm__ __volatile__( -		"1:	ll	%0, %2					\n" +		"	.set	mips3					\n" +		"1:	ll	%0, %2		# __sem_update_count	\n"  		"	sra	%1, %0, 31				\n"  		"	not	%1					\n"  		"	and	%1, %0, %1				\n" -		"	add	%1, %1, %3				\n" +		"	addu	%1, %1, %3				\n"  		"	sc	%1, %2					\n"  		"	beqzl	%1, 1b					\n" +		"	.set	mips0					\n"  		: "=&r" (old_count), "=&r" (tmp), "=m" (sem->count)  		: "r" (incr), "m" (sem->count));  	} else if (cpu_has_llsc) {  		__asm__ __volatile__( -		"1:	ll	%0, %2					\n" +		"	.set	mips3					\n" +		"1:	ll	%0, %2		# __sem_update_count	\n"  		"	sra	%1, %0, 31				\n"  		"	not	%1					\n"  		"	and	%1, %0, %1				\n" -		"	add	%1, %1, %3				\n" +		"	addu	%1, %1, %3				\n"  		"	sc	%1, %2					\n"  		"	beqz	%1, 1b					\n" +		"	.set	mips0					\n"  		: "=&r" (old_count), "=&r" (tmp), "=m" (sem->count)  		: "r" (incr), "m" (sem->count));  	} else {  | 
