Commit da4c5445 authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar
Browse files

locking, mips: Fix atomics



The patch folding the atomic ops had two silly fails in the _return
primitives.

Fixes: ef31563e ("locking,arch,mips: Fold atomic_ops")
Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Cc: Bart Van Assche <bvanassche@acm.org>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Maciej W. Rozycki <macro@codesourcery.com>
Cc: Markos Chandras <markos.chandras@imgtec.com>
Cc: Paul Burton <paul.burton@imgtec.com>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Link: http://lkml.kernel.org/r/20140902202126.GA3190@worktop.ger.corp.intel.com


Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent caa17d49
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
		"	" #asm_op " %0, %1, %3				\n"	\
		"	sc	%0, %2					\n"	\
		"	beqzl	%0, 1b					\n"	\
		"	addu	%0, %1, %3				\n"	\
		"	" #asm_op " %0, %1, %3				\n"	\
		"	.set	mips0					\n"	\
		: "=&r" (result), "=&r" (temp), "+m" (v->counter)		\
		: "Ir" (i));							\
@@ -111,7 +111,7 @@ static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
			: "Ir" (i));						\
		} while (unlikely(!result));					\
										\
		result = temp + i;						\
		result = temp; result c_op i;					\
	} else {								\
		unsigned long flags;						\
										\
@@ -387,7 +387,7 @@ static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
			: "memory");						\
		} while (unlikely(!result));					\
										\
		result = temp + i;						\
		result = temp; result c_op i;					\
	} else {								\
		unsigned long flags;						\
										\