Skip to content

Commit 0e89640

Browse files
broonieherbertx
authored andcommitted
crypto: arm64 - Use modern annotations for assembly functions
In an effort to clarify and simplify the annotation of assembly functions in the kernel new macros have been introduced. These replace ENTRY and ENDPROC and also add a new annotation for static functions which previously had no ENTRY equivalent. Update the annotations in the crypto code to the new macros. There are a small number of files imported from OpenSSL where the assembly is generated using perl programs, these are not currently annotated at all and have not been modified. Signed-off-by: Mark Brown <[email protected]> Acked-by: Ard Biesheuvel <[email protected]> Signed-off-by: Herbert Xu <[email protected]>
1 parent 3907ccf commit 0e89640

17 files changed

+84
-84
lines changed

arch/arm64/crypto/aes-ce-ccm-core.S

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* void ce_aes_ccm_auth_data(u8 mac[], u8 const in[], u32 abytes,
1616
* u32 *macp, u8 const rk[], u32 rounds);
1717
*/
18-
ENTRY(ce_aes_ccm_auth_data)
18+
SYM_FUNC_START(ce_aes_ccm_auth_data)
1919
ldr w8, [x3] /* leftover from prev round? */
2020
ld1 {v0.16b}, [x0] /* load mac */
2121
cbz w8, 1f
@@ -81,13 +81,13 @@ ENTRY(ce_aes_ccm_auth_data)
8181
st1 {v0.16b}, [x0]
8282
10: str w8, [x3]
8383
ret
84-
ENDPROC(ce_aes_ccm_auth_data)
84+
SYM_FUNC_END(ce_aes_ccm_auth_data)
8585

8686
/*
8787
* void ce_aes_ccm_final(u8 mac[], u8 const ctr[], u8 const rk[],
8888
* u32 rounds);
8989
*/
90-
ENTRY(ce_aes_ccm_final)
90+
SYM_FUNC_START(ce_aes_ccm_final)
9191
ld1 {v3.4s}, [x2], #16 /* load first round key */
9292
ld1 {v0.16b}, [x0] /* load mac */
9393
cmp w3, #12 /* which key size? */
@@ -121,7 +121,7 @@ ENTRY(ce_aes_ccm_final)
121121
eor v0.16b, v0.16b, v1.16b /* en-/decrypt the mac */
122122
st1 {v0.16b}, [x0] /* store result */
123123
ret
124-
ENDPROC(ce_aes_ccm_final)
124+
SYM_FUNC_END(ce_aes_ccm_final)
125125

126126
.macro aes_ccm_do_crypt,enc
127127
ldr x8, [x6, #8] /* load lower ctr */
@@ -212,10 +212,10 @@ CPU_LE( rev x8, x8 )
212212
* u8 const rk[], u32 rounds, u8 mac[],
213213
* u8 ctr[]);
214214
*/
215-
ENTRY(ce_aes_ccm_encrypt)
215+
SYM_FUNC_START(ce_aes_ccm_encrypt)
216216
aes_ccm_do_crypt 1
217-
ENDPROC(ce_aes_ccm_encrypt)
217+
SYM_FUNC_END(ce_aes_ccm_encrypt)
218218

219-
ENTRY(ce_aes_ccm_decrypt)
219+
SYM_FUNC_START(ce_aes_ccm_decrypt)
220220
aes_ccm_do_crypt 0
221-
ENDPROC(ce_aes_ccm_decrypt)
221+
SYM_FUNC_END(ce_aes_ccm_decrypt)

arch/arm64/crypto/aes-ce-core.S

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
.arch armv8-a+crypto
1010

11-
ENTRY(__aes_ce_encrypt)
11+
SYM_FUNC_START(__aes_ce_encrypt)
1212
sub w3, w3, #2
1313
ld1 {v0.16b}, [x2]
1414
ld1 {v1.4s}, [x0], #16
@@ -34,9 +34,9 @@ ENTRY(__aes_ce_encrypt)
3434
eor v0.16b, v0.16b, v3.16b
3535
st1 {v0.16b}, [x1]
3636
ret
37-
ENDPROC(__aes_ce_encrypt)
37+
SYM_FUNC_END(__aes_ce_encrypt)
3838

39-
ENTRY(__aes_ce_decrypt)
39+
SYM_FUNC_START(__aes_ce_decrypt)
4040
sub w3, w3, #2
4141
ld1 {v0.16b}, [x2]
4242
ld1 {v1.4s}, [x0], #16
@@ -62,23 +62,23 @@ ENTRY(__aes_ce_decrypt)
6262
eor v0.16b, v0.16b, v3.16b
6363
st1 {v0.16b}, [x1]
6464
ret
65-
ENDPROC(__aes_ce_decrypt)
65+
SYM_FUNC_END(__aes_ce_decrypt)
6666

6767
/*
6868
* __aes_ce_sub() - use the aese instruction to perform the AES sbox
6969
* substitution on each byte in 'input'
7070
*/
71-
ENTRY(__aes_ce_sub)
71+
SYM_FUNC_START(__aes_ce_sub)
7272
dup v1.4s, w0
7373
movi v0.16b, #0
7474
aese v0.16b, v1.16b
7575
umov w0, v0.s[0]
7676
ret
77-
ENDPROC(__aes_ce_sub)
77+
SYM_FUNC_END(__aes_ce_sub)
7878

79-
ENTRY(__aes_ce_invert)
79+
SYM_FUNC_START(__aes_ce_invert)
8080
ld1 {v0.4s}, [x1]
8181
aesimc v1.16b, v0.16b
8282
st1 {v1.4s}, [x0]
8383
ret
84-
ENDPROC(__aes_ce_invert)
84+
SYM_FUNC_END(__aes_ce_invert)

arch/arm64/crypto/aes-ce.S

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
#include <linux/linkage.h>
1010
#include <asm/assembler.h>
1111

12-
#define AES_ENTRY(func) ENTRY(ce_ ## func)
13-
#define AES_ENDPROC(func) ENDPROC(ce_ ## func)
12+
#define AES_ENTRY(func) SYM_FUNC_START(ce_ ## func)
13+
#define AES_ENDPROC(func) SYM_FUNC_END(ce_ ## func)
1414

1515
.arch armv8-a+crypto
1616

arch/arm64/crypto/aes-cipher-core.S

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,11 @@ CPU_BE( rev w7, w7 )
122122
ret
123123
.endm
124124

125-
ENTRY(__aes_arm64_encrypt)
125+
SYM_FUNC_START(__aes_arm64_encrypt)
126126
do_crypt fround, crypto_ft_tab, crypto_ft_tab + 1, 2
127-
ENDPROC(__aes_arm64_encrypt)
127+
SYM_FUNC_END(__aes_arm64_encrypt)
128128

129129
.align 5
130-
ENTRY(__aes_arm64_decrypt)
130+
SYM_FUNC_START(__aes_arm64_decrypt)
131131
do_crypt iround, crypto_it_tab, crypto_aes_inv_sbox, 0
132-
ENDPROC(__aes_arm64_decrypt)
132+
SYM_FUNC_END(__aes_arm64_decrypt)

arch/arm64/crypto/aes-modes.S

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,26 +22,26 @@
2222
#define ST5(x...) x
2323
#endif
2424

25-
aes_encrypt_block4x:
25+
SYM_FUNC_START_LOCAL(aes_encrypt_block4x)
2626
encrypt_block4x v0, v1, v2, v3, w3, x2, x8, w7
2727
ret
28-
ENDPROC(aes_encrypt_block4x)
28+
SYM_FUNC_END(aes_encrypt_block4x)
2929

30-
aes_decrypt_block4x:
30+
SYM_FUNC_START_LOCAL(aes_decrypt_block4x)
3131
decrypt_block4x v0, v1, v2, v3, w3, x2, x8, w7
3232
ret
33-
ENDPROC(aes_decrypt_block4x)
33+
SYM_FUNC_END(aes_decrypt_block4x)
3434

3535
#if MAX_STRIDE == 5
36-
aes_encrypt_block5x:
36+
SYM_FUNC_START_LOCAL(aes_encrypt_block5x)
3737
encrypt_block5x v0, v1, v2, v3, v4, w3, x2, x8, w7
3838
ret
39-
ENDPROC(aes_encrypt_block5x)
39+
SYM_FUNC_END(aes_encrypt_block5x)
4040

41-
aes_decrypt_block5x:
41+
SYM_FUNC_START_LOCAL(aes_decrypt_block5x)
4242
decrypt_block5x v0, v1, v2, v3, v4, w3, x2, x8, w7
4343
ret
44-
ENDPROC(aes_decrypt_block5x)
44+
SYM_FUNC_END(aes_decrypt_block5x)
4545
#endif
4646

4747
/*

arch/arm64/crypto/aes-neon.S

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
#include <linux/linkage.h>
99
#include <asm/assembler.h>
1010

11-
#define AES_ENTRY(func) ENTRY(neon_ ## func)
12-
#define AES_ENDPROC(func) ENDPROC(neon_ ## func)
11+
#define AES_ENTRY(func) SYM_FUNC_START(neon_ ## func)
12+
#define AES_ENDPROC(func) SYM_FUNC_END(neon_ ## func)
1313

1414
xtsmask .req v7
1515
cbciv .req v7

arch/arm64/crypto/aes-neonbs-core.S

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ ISRM0: .octa 0x0306090c00070a0d01040b0e0205080f
380380
/*
381381
* void aesbs_convert_key(u8 out[], u32 const rk[], int rounds)
382382
*/
383-
ENTRY(aesbs_convert_key)
383+
SYM_FUNC_START(aesbs_convert_key)
384384
ld1 {v7.4s}, [x1], #16 // load round 0 key
385385
ld1 {v17.4s}, [x1], #16 // load round 1 key
386386

@@ -425,10 +425,10 @@ ENTRY(aesbs_convert_key)
425425
eor v17.16b, v17.16b, v7.16b
426426
str q17, [x0]
427427
ret
428-
ENDPROC(aesbs_convert_key)
428+
SYM_FUNC_END(aesbs_convert_key)
429429

430430
.align 4
431-
aesbs_encrypt8:
431+
SYM_FUNC_START_LOCAL(aesbs_encrypt8)
432432
ldr q9, [bskey], #16 // round 0 key
433433
ldr q8, M0SR
434434
ldr q24, SR
@@ -488,10 +488,10 @@ aesbs_encrypt8:
488488
eor v2.16b, v2.16b, v12.16b
489489
eor v5.16b, v5.16b, v12.16b
490490
ret
491-
ENDPROC(aesbs_encrypt8)
491+
SYM_FUNC_END(aesbs_encrypt8)
492492

493493
.align 4
494-
aesbs_decrypt8:
494+
SYM_FUNC_START_LOCAL(aesbs_decrypt8)
495495
lsl x9, rounds, #7
496496
add bskey, bskey, x9
497497

@@ -553,7 +553,7 @@ aesbs_decrypt8:
553553
eor v3.16b, v3.16b, v12.16b
554554
eor v5.16b, v5.16b, v12.16b
555555
ret
556-
ENDPROC(aesbs_decrypt8)
556+
SYM_FUNC_END(aesbs_decrypt8)
557557

558558
/*
559559
* aesbs_ecb_encrypt(u8 out[], u8 const in[], u8 const rk[], int rounds,
@@ -621,21 +621,21 @@ ENDPROC(aesbs_decrypt8)
621621
.endm
622622

623623
.align 4
624-
ENTRY(aesbs_ecb_encrypt)
624+
SYM_FUNC_START(aesbs_ecb_encrypt)
625625
__ecb_crypt aesbs_encrypt8, v0, v1, v4, v6, v3, v7, v2, v5
626-
ENDPROC(aesbs_ecb_encrypt)
626+
SYM_FUNC_END(aesbs_ecb_encrypt)
627627

628628
.align 4
629-
ENTRY(aesbs_ecb_decrypt)
629+
SYM_FUNC_START(aesbs_ecb_decrypt)
630630
__ecb_crypt aesbs_decrypt8, v0, v1, v6, v4, v2, v7, v3, v5
631-
ENDPROC(aesbs_ecb_decrypt)
631+
SYM_FUNC_END(aesbs_ecb_decrypt)
632632

633633
/*
634634
* aesbs_cbc_decrypt(u8 out[], u8 const in[], u8 const rk[], int rounds,
635635
* int blocks, u8 iv[])
636636
*/
637637
.align 4
638-
ENTRY(aesbs_cbc_decrypt)
638+
SYM_FUNC_START(aesbs_cbc_decrypt)
639639
frame_push 6
640640

641641
mov x19, x0
@@ -720,7 +720,7 @@ ENTRY(aesbs_cbc_decrypt)
720720

721721
2: frame_pop
722722
ret
723-
ENDPROC(aesbs_cbc_decrypt)
723+
SYM_FUNC_END(aesbs_cbc_decrypt)
724724

725725
.macro next_tweak, out, in, const, tmp
726726
sshr \tmp\().2d, \in\().2d, #63
@@ -736,7 +736,7 @@ ENDPROC(aesbs_cbc_decrypt)
736736
* aesbs_xts_decrypt(u8 out[], u8 const in[], u8 const rk[], int rounds,
737737
* int blocks, u8 iv[])
738738
*/
739-
__xts_crypt8:
739+
SYM_FUNC_START_LOCAL(__xts_crypt8)
740740
mov x6, #1
741741
lsl x6, x6, x23
742742
subs w23, w23, #8
@@ -789,7 +789,7 @@ __xts_crypt8:
789789
0: mov bskey, x21
790790
mov rounds, x22
791791
br x7
792-
ENDPROC(__xts_crypt8)
792+
SYM_FUNC_END(__xts_crypt8)
793793

794794
.macro __xts_crypt, do8, o0, o1, o2, o3, o4, o5, o6, o7
795795
frame_push 6, 64
@@ -854,13 +854,13 @@ ENDPROC(__xts_crypt8)
854854
ret
855855
.endm
856856

857-
ENTRY(aesbs_xts_encrypt)
857+
SYM_FUNC_START(aesbs_xts_encrypt)
858858
__xts_crypt aesbs_encrypt8, v0, v1, v4, v6, v3, v7, v2, v5
859-
ENDPROC(aesbs_xts_encrypt)
859+
SYM_FUNC_END(aesbs_xts_encrypt)
860860

861-
ENTRY(aesbs_xts_decrypt)
861+
SYM_FUNC_START(aesbs_xts_decrypt)
862862
__xts_crypt aesbs_decrypt8, v0, v1, v6, v4, v2, v7, v3, v5
863-
ENDPROC(aesbs_xts_decrypt)
863+
SYM_FUNC_END(aesbs_xts_decrypt)
864864

865865
.macro next_ctr, v
866866
mov \v\().d[1], x8
@@ -874,7 +874,7 @@ ENDPROC(aesbs_xts_decrypt)
874874
* aesbs_ctr_encrypt(u8 out[], u8 const in[], u8 const rk[],
875875
* int rounds, int blocks, u8 iv[], u8 final[])
876876
*/
877-
ENTRY(aesbs_ctr_encrypt)
877+
SYM_FUNC_START(aesbs_ctr_encrypt)
878878
frame_push 8
879879

880880
mov x19, x0
@@ -1002,4 +1002,4 @@ CPU_LE( rev x8, x8 )
10021002
7: cbz x25, 8b
10031003
st1 {v5.16b}, [x25]
10041004
b 8b
1005-
ENDPROC(aesbs_ctr_encrypt)
1005+
SYM_FUNC_END(aesbs_ctr_encrypt)

arch/arm64/crypto/chacha-neon-core.S

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
*
3737
* Clobbers: w3, x10, v4, v12
3838
*/
39-
chacha_permute:
39+
SYM_FUNC_START_LOCAL(chacha_permute)
4040

4141
adr_l x10, ROT8
4242
ld1 {v12.4s}, [x10]
@@ -104,9 +104,9 @@ chacha_permute:
104104
b.ne .Ldoubleround
105105

106106
ret
107-
ENDPROC(chacha_permute)
107+
SYM_FUNC_END(chacha_permute)
108108

109-
ENTRY(chacha_block_xor_neon)
109+
SYM_FUNC_START(chacha_block_xor_neon)
110110
// x0: Input state matrix, s
111111
// x1: 1 data block output, o
112112
// x2: 1 data block input, i
@@ -143,9 +143,9 @@ ENTRY(chacha_block_xor_neon)
143143

144144
ldp x29, x30, [sp], #16
145145
ret
146-
ENDPROC(chacha_block_xor_neon)
146+
SYM_FUNC_END(chacha_block_xor_neon)
147147

148-
ENTRY(hchacha_block_neon)
148+
SYM_FUNC_START(hchacha_block_neon)
149149
// x0: Input state matrix, s
150150
// x1: output (8 32-bit words)
151151
// w2: nrounds
@@ -163,7 +163,7 @@ ENTRY(hchacha_block_neon)
163163

164164
ldp x29, x30, [sp], #16
165165
ret
166-
ENDPROC(hchacha_block_neon)
166+
SYM_FUNC_END(hchacha_block_neon)
167167

168168
a0 .req w12
169169
a1 .req w13
@@ -183,7 +183,7 @@ ENDPROC(hchacha_block_neon)
183183
a15 .req w28
184184

185185
.align 6
186-
ENTRY(chacha_4block_xor_neon)
186+
SYM_FUNC_START(chacha_4block_xor_neon)
187187
frame_push 10
188188

189189
// x0: Input state matrix, s
@@ -845,7 +845,7 @@ CPU_BE( rev a15, a15 )
845845
eor v31.16b, v31.16b, v3.16b
846846
st1 {v28.16b-v31.16b}, [x1]
847847
b .Lout
848-
ENDPROC(chacha_4block_xor_neon)
848+
SYM_FUNC_END(chacha_4block_xor_neon)
849849

850850
.section ".rodata", "a", %progbits
851851
.align L1_CACHE_SHIFT

0 commit comments

Comments
 (0)