Commit 7b90dc40 authored by Mark Rutland's avatar Mark Rutland Committed by Catalin Marinas
Browse files

arm64: uaccess cleanup macro naming



Now the uaccess primitives use LDTR/STTR unconditionally, the
uao_{ldp,stp,user_alternative} asm macros are misnamed, and have a
redundant argument. Let's remove the redundant argument and rename these
to user_{ldp,stp,ldst} respectively to clean this up.

Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
Reviewed-by: default avatarRobin Murohy <robin.murphy@arm.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: James Morse <james.morse@arm.com>
Cc: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20201202131558.39270-9-mark.rutland@arm.com


Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent fc703d80
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ alternative_else_nop_endif
 * This is complicated as there is no post-increment or pair versions of the
 * unprivileged instructions, and USER() only works for single instructions.
 */
	.macro uao_ldp l, reg1, reg2, addr, post_inc
	.macro user_ldp l, reg1, reg2, addr, post_inc
8888:		ldtr	\reg1, [\addr];
8889:		ldtr	\reg2, [\addr, #8];
		add	\addr, \addr, \post_inc;
@@ -72,7 +72,7 @@ alternative_else_nop_endif
		_asm_extable	8889b,\l;
	.endm

	.macro uao_stp l, reg1, reg2, addr, post_inc
	.macro user_stp l, reg1, reg2, addr, post_inc
8888:		sttr	\reg1, [\addr];
8889:		sttr	\reg2, [\addr, #8];
		add	\addr, \addr, \post_inc;
@@ -81,8 +81,8 @@ alternative_else_nop_endif
		_asm_extable	8889b,\l;
	.endm

	.macro uao_user_alternative l, inst, alt_inst, reg, addr, post_inc
8888:		\alt_inst	\reg, [\addr];
	.macro user_ldst l, inst, reg, addr, post_inc
8888:		\inst		\reg, [\addr];
		add		\addr, \addr, \post_inc;

		_asm_extable	8888b,\l;
+4 −4
Original line number Diff line number Diff line
@@ -24,20 +24,20 @@ SYM_FUNC_START(__arch_clear_user)
	subs	x1, x1, #8
	b.mi	2f
1:
uao_user_alternative 9f, str, sttr, xzr, x0, 8
user_ldst 9f, sttr, xzr, x0, 8
	subs	x1, x1, #8
	b.pl	1b
2:	adds	x1, x1, #4
	b.mi	3f
uao_user_alternative 9f, str, sttr, wzr, x0, 4
user_ldst 9f, sttr, wzr, x0, 4
	sub	x1, x1, #4
3:	adds	x1, x1, #2
	b.mi	4f
uao_user_alternative 9f, strh, sttrh, wzr, x0, 2
user_ldst 9f, sttrh, wzr, x0, 2
	sub	x1, x1, #2
4:	adds	x1, x1, #1
	b.mi	5f
uao_user_alternative 9f, strb, sttrb, wzr, x0, 0
user_ldst 9f, sttrb, wzr, x0, 0
5:	mov	x0, #0
	ret
SYM_FUNC_END(__arch_clear_user)
+4 −4
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@
 */

	.macro ldrb1 reg, ptr, val
	uao_user_alternative 9998f, ldrb, ldtrb, \reg, \ptr, \val
	user_ldst 9998f, ldtrb, \reg, \ptr, \val
	.endm

	.macro strb1 reg, ptr, val
@@ -29,7 +29,7 @@
	.endm

	.macro ldrh1 reg, ptr, val
	uao_user_alternative 9998f, ldrh, ldtrh, \reg, \ptr, \val
	user_ldst 9998f, ldtrh, \reg, \ptr, \val
	.endm

	.macro strh1 reg, ptr, val
@@ -37,7 +37,7 @@
	.endm

	.macro ldr1 reg, ptr, val
	uao_user_alternative 9998f, ldr, ldtr, \reg, \ptr, \val
	user_ldst 9998f, ldtr, \reg, \ptr, \val
	.endm

	.macro str1 reg, ptr, val
@@ -45,7 +45,7 @@
	.endm

	.macro ldp1 reg1, reg2, ptr, val
	uao_ldp 9998f, \reg1, \reg2, \ptr, \val
	user_ldp 9998f, \reg1, \reg2, \ptr, \val
	.endm

	.macro stp1 reg1, reg2, ptr, val
+8 −8
Original line number Diff line number Diff line
@@ -22,35 +22,35 @@
 *	x0 - bytes not copied
 */
	.macro ldrb1 reg, ptr, val
	uao_user_alternative 9998f, ldrb, ldtrb, \reg, \ptr, \val
	user_ldst 9998f, ldtrb, \reg, \ptr, \val
	.endm

	.macro strb1 reg, ptr, val
	uao_user_alternative 9998f, strb, sttrb, \reg, \ptr, \val
	user_ldst 9998f, sttrb, \reg, \ptr, \val
	.endm

	.macro ldrh1 reg, ptr, val
	uao_user_alternative 9998f, ldrh, ldtrh, \reg, \ptr, \val
	user_ldst 9998f, ldtrh, \reg, \ptr, \val
	.endm

	.macro strh1 reg, ptr, val
	uao_user_alternative 9998f, strh, sttrh, \reg, \ptr, \val
	user_ldst 9998f, sttrh, \reg, \ptr, \val
	.endm

	.macro ldr1 reg, ptr, val
	uao_user_alternative 9998f, ldr, ldtr, \reg, \ptr, \val
	user_ldst 9998f, ldtr, \reg, \ptr, \val
	.endm

	.macro str1 reg, ptr, val
	uao_user_alternative 9998f, str, sttr, \reg, \ptr, \val
	user_ldst 9998f, sttr, \reg, \ptr, \val
	.endm

	.macro ldp1 reg1, reg2, ptr, val
	uao_ldp 9998f, \reg1, \reg2, \ptr, \val
	user_ldp 9998f, \reg1, \reg2, \ptr, \val
	.endm

	.macro stp1 reg1, reg2, ptr, val
	uao_stp 9998f, \reg1, \reg2, \ptr, \val
	user_stp 9998f, \reg1, \reg2, \ptr, \val
	.endm

end	.req	x5
+4 −4
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@
	.endm

	.macro strb1 reg, ptr, val
	uao_user_alternative 9998f, strb, sttrb, \reg, \ptr, \val
	user_ldst 9998f, sttrb, \reg, \ptr, \val
	.endm

	.macro ldrh1 reg, ptr, val
@@ -32,7 +32,7 @@
	.endm

	.macro strh1 reg, ptr, val
	uao_user_alternative 9998f, strh, sttrh, \reg, \ptr, \val
	user_ldst 9998f, sttrh, \reg, \ptr, \val
	.endm

	.macro ldr1 reg, ptr, val
@@ -40,7 +40,7 @@
	.endm

	.macro str1 reg, ptr, val
	uao_user_alternative 9998f, str, sttr, \reg, \ptr, \val
	user_ldst 9998f, sttr, \reg, \ptr, \val
	.endm

	.macro ldp1 reg1, reg2, ptr, val
@@ -48,7 +48,7 @@
	.endm

	.macro stp1 reg1, reg2, ptr, val
	uao_stp 9998f, \reg1, \reg2, \ptr, \val
	user_stp 9998f, \reg1, \reg2, \ptr, \val
	.endm

end	.req	x5
Loading