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

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: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Robin 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: Catalin Marinas <catalin.marinas@arm.com>

authored by

Mark Rutland and committed by
Catalin Marinas
7b90dc40 fc703d80

+26 -26
+4 -4
arch/arm64/include/asm/asm-uaccess.h
··· 63 63 * This is complicated as there is no post-increment or pair versions of the 64 64 * unprivileged instructions, and USER() only works for single instructions. 65 65 */ 66 - .macro uao_ldp l, reg1, reg2, addr, post_inc 66 + .macro user_ldp l, reg1, reg2, addr, post_inc 67 67 8888: ldtr \reg1, [\addr]; 68 68 8889: ldtr \reg2, [\addr, #8]; 69 69 add \addr, \addr, \post_inc; ··· 72 72 _asm_extable 8889b,\l; 73 73 .endm 74 74 75 - .macro uao_stp l, reg1, reg2, addr, post_inc 75 + .macro user_stp l, reg1, reg2, addr, post_inc 76 76 8888: sttr \reg1, [\addr]; 77 77 8889: sttr \reg2, [\addr, #8]; 78 78 add \addr, \addr, \post_inc; ··· 81 81 _asm_extable 8889b,\l; 82 82 .endm 83 83 84 - .macro uao_user_alternative l, inst, alt_inst, reg, addr, post_inc 85 - 8888: \alt_inst \reg, [\addr]; 84 + .macro user_ldst l, inst, reg, addr, post_inc 85 + 8888: \inst \reg, [\addr]; 86 86 add \addr, \addr, \post_inc; 87 87 88 88 _asm_extable 8888b,\l;
+4 -4
arch/arm64/lib/clear_user.S
··· 24 24 subs x1, x1, #8 25 25 b.mi 2f 26 26 1: 27 - uao_user_alternative 9f, str, sttr, xzr, x0, 8 27 + user_ldst 9f, sttr, xzr, x0, 8 28 28 subs x1, x1, #8 29 29 b.pl 1b 30 30 2: adds x1, x1, #4 31 31 b.mi 3f 32 - uao_user_alternative 9f, str, sttr, wzr, x0, 4 32 + user_ldst 9f, sttr, wzr, x0, 4 33 33 sub x1, x1, #4 34 34 3: adds x1, x1, #2 35 35 b.mi 4f 36 - uao_user_alternative 9f, strh, sttrh, wzr, x0, 2 36 + user_ldst 9f, sttrh, wzr, x0, 2 37 37 sub x1, x1, #2 38 38 4: adds x1, x1, #1 39 39 b.mi 5f 40 - uao_user_alternative 9f, strb, sttrb, wzr, x0, 0 40 + user_ldst 9f, sttrb, wzr, x0, 0 41 41 5: mov x0, #0 42 42 ret 43 43 SYM_FUNC_END(__arch_clear_user)
+4 -4
arch/arm64/lib/copy_from_user.S
··· 21 21 */ 22 22 23 23 .macro ldrb1 reg, ptr, val 24 - uao_user_alternative 9998f, ldrb, ldtrb, \reg, \ptr, \val 24 + user_ldst 9998f, ldtrb, \reg, \ptr, \val 25 25 .endm 26 26 27 27 .macro strb1 reg, ptr, val ··· 29 29 .endm 30 30 31 31 .macro ldrh1 reg, ptr, val 32 - uao_user_alternative 9998f, ldrh, ldtrh, \reg, \ptr, \val 32 + user_ldst 9998f, ldtrh, \reg, \ptr, \val 33 33 .endm 34 34 35 35 .macro strh1 reg, ptr, val ··· 37 37 .endm 38 38 39 39 .macro ldr1 reg, ptr, val 40 - uao_user_alternative 9998f, ldr, ldtr, \reg, \ptr, \val 40 + user_ldst 9998f, ldtr, \reg, \ptr, \val 41 41 .endm 42 42 43 43 .macro str1 reg, ptr, val ··· 45 45 .endm 46 46 47 47 .macro ldp1 reg1, reg2, ptr, val 48 - uao_ldp 9998f, \reg1, \reg2, \ptr, \val 48 + user_ldp 9998f, \reg1, \reg2, \ptr, \val 49 49 .endm 50 50 51 51 .macro stp1 reg1, reg2, ptr, val
+8 -8
arch/arm64/lib/copy_in_user.S
··· 22 22 * x0 - bytes not copied 23 23 */ 24 24 .macro ldrb1 reg, ptr, val 25 - uao_user_alternative 9998f, ldrb, ldtrb, \reg, \ptr, \val 25 + user_ldst 9998f, ldtrb, \reg, \ptr, \val 26 26 .endm 27 27 28 28 .macro strb1 reg, ptr, val 29 - uao_user_alternative 9998f, strb, sttrb, \reg, \ptr, \val 29 + user_ldst 9998f, sttrb, \reg, \ptr, \val 30 30 .endm 31 31 32 32 .macro ldrh1 reg, ptr, val 33 - uao_user_alternative 9998f, ldrh, ldtrh, \reg, \ptr, \val 33 + user_ldst 9998f, ldtrh, \reg, \ptr, \val 34 34 .endm 35 35 36 36 .macro strh1 reg, ptr, val 37 - uao_user_alternative 9998f, strh, sttrh, \reg, \ptr, \val 37 + user_ldst 9998f, sttrh, \reg, \ptr, \val 38 38 .endm 39 39 40 40 .macro ldr1 reg, ptr, val 41 - uao_user_alternative 9998f, ldr, ldtr, \reg, \ptr, \val 41 + user_ldst 9998f, ldtr, \reg, \ptr, \val 42 42 .endm 43 43 44 44 .macro str1 reg, ptr, val 45 - uao_user_alternative 9998f, str, sttr, \reg, \ptr, \val 45 + user_ldst 9998f, sttr, \reg, \ptr, \val 46 46 .endm 47 47 48 48 .macro ldp1 reg1, reg2, ptr, val 49 - uao_ldp 9998f, \reg1, \reg2, \ptr, \val 49 + user_ldp 9998f, \reg1, \reg2, \ptr, \val 50 50 .endm 51 51 52 52 .macro stp1 reg1, reg2, ptr, val 53 - uao_stp 9998f, \reg1, \reg2, \ptr, \val 53 + user_stp 9998f, \reg1, \reg2, \ptr, \val 54 54 .endm 55 55 56 56 end .req x5
+4 -4
arch/arm64/lib/copy_to_user.S
··· 24 24 .endm 25 25 26 26 .macro strb1 reg, ptr, val 27 - uao_user_alternative 9998f, strb, sttrb, \reg, \ptr, \val 27 + user_ldst 9998f, sttrb, \reg, \ptr, \val 28 28 .endm 29 29 30 30 .macro ldrh1 reg, ptr, val ··· 32 32 .endm 33 33 34 34 .macro strh1 reg, ptr, val 35 - uao_user_alternative 9998f, strh, sttrh, \reg, \ptr, \val 35 + user_ldst 9998f, sttrh, \reg, \ptr, \val 36 36 .endm 37 37 38 38 .macro ldr1 reg, ptr, val ··· 40 40 .endm 41 41 42 42 .macro str1 reg, ptr, val 43 - uao_user_alternative 9998f, str, sttr, \reg, \ptr, \val 43 + user_ldst 9998f, sttr, \reg, \ptr, \val 44 44 .endm 45 45 46 46 .macro ldp1 reg1, reg2, ptr, val ··· 48 48 .endm 49 49 50 50 .macro stp1 reg1, reg2, ptr, val 51 - uao_stp 9998f, \reg1, \reg2, \ptr, \val 51 + user_stp 9998f, \reg1, \reg2, \ptr, \val 52 52 .endm 53 53 54 54 end .req x5
+2 -2
arch/arm64/lib/mte.S
··· 67 67 mov x3, x1 68 68 cbz x2, 2f 69 69 1: 70 - uao_user_alternative 2f, ldrb, ldtrb, w4, x1, 0 70 + user_ldst 2f, ldtrb, w4, x1, 0 71 71 lsl x4, x4, #MTE_TAG_SHIFT 72 72 stg x4, [x0], #MTE_GRANULE_SIZE 73 73 add x1, x1, #1 ··· 94 94 1: 95 95 ldg x4, [x1] 96 96 ubfx x4, x4, #MTE_TAG_SHIFT, #MTE_TAG_SIZE 97 - uao_user_alternative 2f, strb, sttrb, w4, x0, 0 97 + user_ldst 2f, sttrb, w4, x0, 0 98 98 add x0, x0, #1 99 99 add x1, x1, #MTE_GRANULE_SIZE 100 100 subs x2, x2, #1