Commit 203e090a authored by James Hogan's avatar James Hogan Committed by Ralf Baechle

MIPS: Branch straight to ll in mips_atomic_set()

Adjust the atomic loop in the MIPS_ATOMIC_SET operation of the sysmips
system call to branch straight back to the linked load rather than
jumping via a different subsection (whose purpose remains a mystery to
me).
Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/16150/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 4915e1b0
......@@ -137,13 +137,9 @@ static inline int mips_atomic_set(unsigned long addr, unsigned long new)
" move %[tmp], %[new] \n"
"2: \n"
user_sc("%[tmp]", "(%[addr])")
" beqz %[tmp], 4f \n"
" beqz %[tmp], 1b \n"
"3: \n"
" .insn \n"
" .subsection 2 \n"
"4: b 1b \n"
" .previous \n"
" \n"
" .section .fixup,\"ax\" \n"
"5: li %[err], %[efault] \n"
" j 3b \n"
......
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