Commit-ID: da4c54457e6d8262423aded4bcbccc4103049506
Gitweb: http://git.kernel.org/tip/da4c54457e6d8262423aded4bcbccc4103049506
Author: Peter Zijlstra <[email protected]>
AuthorDate: Tue, 2 Sep 2014 22:21:26 +0200
Committer: Ingo Molnar <[email protected]>
CommitDate: Wed, 10 Sep 2014 11:45:06 +0200
locking, mips: Fix atomics
The patch folding the atomic ops had two silly fails in the _return
primitives.
Fixes: ef31563e950c ("locking,arch,mips: Fold atomic_ops")
Reported-by: Guenter Roeck <[email protected]>
Tested-by: Guenter Roeck <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Cc: Bart Van Assche <[email protected]>
Cc: Hannes Reinecke <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Maciej W. Rozycki <[email protected]>
Cc: Markos Chandras <[email protected]>
Cc: Paul Burton <[email protected]>
Cc: Paul E. McKenney <[email protected]>
Cc: Ralf Baechle <[email protected]>
Cc: Stephen Rothwell <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
---
arch/mips/include/asm/atomic.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h
index 476fe3b..f3ee721 100644
--- a/arch/mips/include/asm/atomic.h
+++ b/arch/mips/include/asm/atomic.h
@@ -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;
\
\
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/