diff options
author | James Hogan <james.hogan@imgtec.com> | 2017-05-31 17:19:50 +0200 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2017-06-28 12:22:40 +0200 |
commit | 203e090ade7357101e40a3d3aad3af77653da8df (patch) | |
tree | 0bbfe0180b114216c5b0aaf0387dd4198ab8598b /arch | |
parent | MIPS: Fix mips_atomic_set() with EVA (diff) | |
download | linux-203e090ade7357101e40a3d3aad3af77653da8df.tar.xz linux-203e090ade7357101e40a3d3aad3af77653da8df.zip |
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: James Hogan <james.hogan@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/16150/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/kernel/syscall.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c index 863f958c126c..58c6f634b550 100644 --- a/arch/mips/kernel/syscall.c +++ b/arch/mips/kernel/syscall.c @@ -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" |