Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -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"