Commit 51822216 authored by Markos Chandras's avatar Markos Chandras Committed by Ralf Baechle

MIPS: asm: spinlock: Fix addiu instruction for R10000_LLSC_WAR case

Commit 5753762c("MIPS: asm: spinlock: Replace "sub" instruction
with "addiu") replaced the "sub" instruction with addiu but it did
not update the immediate value in the R10000_LLSC_WAR case.
Signed-off-by: default avatarMarkos Chandras <markos.chandras@imgtec.com>
Fixes: 5753762c("MIPS: asm: spinlock: Replace "sub" instruction with "addiu"")
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/9385/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent f6b39ae6
...@@ -263,7 +263,7 @@ static inline void arch_read_unlock(arch_rwlock_t *rw) ...@@ -263,7 +263,7 @@ static inline void arch_read_unlock(arch_rwlock_t *rw)
if (R10000_LLSC_WAR) { if (R10000_LLSC_WAR) {
__asm__ __volatile__( __asm__ __volatile__(
"1: ll %1, %2 # arch_read_unlock \n" "1: ll %1, %2 # arch_read_unlock \n"
" addiu %1, 1 \n" " addiu %1, -1 \n"
" sc %1, %0 \n" " sc %1, %0 \n"
" beqzl %1, 1b \n" " beqzl %1, 1b \n"
: "=" GCC_OFF_SMALL_ASM() (rw->lock), "=&r" (tmp) : "=" GCC_OFF_SMALL_ASM() (rw->lock), "=&r" (tmp)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment