Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

James Hogan and committed by
Ralf Baechle
203e090a 4915e1b0

+1 -5
+1 -5
arch/mips/kernel/syscall.c
··· 137 137 " move %[tmp], %[new] \n" 138 138 "2: \n" 139 139 user_sc("%[tmp]", "(%[addr])") 140 - " beqz %[tmp], 4f \n" 140 + " beqz %[tmp], 1b \n" 141 141 "3: \n" 142 142 " .insn \n" 143 - " .subsection 2 \n" 144 - "4: b 1b \n" 145 - " .previous \n" 146 - " \n" 147 143 " .section .fixup,\"ax\" \n" 148 144 "5: li %[err], %[efault] \n" 149 145 " j 3b \n"