crypto:x86 - Remove CONFIG_AS_GFNI
Subsystems (2)
PATCH 1/4 crypto:x86 - Remove CONFIG_AS_GFNI
Current minimum required version of binutils is 2.30, which supports GFNI instruction mnemonics.
Remove check for assembler support of GFNI instructions and all relevant macros for conditional compilation.
No functional change intended.
--- arch/x86/Kconfig.assembler | 5 ----- arch/x86/crypto/Kconfig | 2 +- arch/x86/crypto/aria-aesni-avx-asm_64.S | 10 ---------- arch/x86/crypto/aria-aesni-avx2-asm_64.S | 10 +--------- arch/x86/crypto/aria_aesni_avx2_glue.c | 4 +--- arch/x86/crypto/aria_aesni_avx_glue.c | 4 +--- 6 files changed, 4 insertions(+), 31 deletions(-)
arch/x86/Kconfig.assembler +0 -5
@@ -6,11 +6,6 @@ config AS_AVX512 help Supported by binutils >= 2.25 and LLVM integrated assembler -config AS_GFNI - def_bool $(as-instr,vgf2p8mulb %xmm0$(comma)%xmm1$(comma)%xmm2) - help - Supported by binutils >= 2.30 and LLVM integrated assembler - config AS_VAES def_bool $(as-instr,vaesenc %ymm0$(comma)%ymm1$(comma)%ymm2) help
arch/x86/crypto/Kconfig +1 -1
@@ -319,7 +319,7 @@ config CRYPTO_ARIA_AESNI_AVX2_X86_64 config CRYPTO_ARIA_GFNI_AVX512_X86_64 tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)" - depends on 64BIT && AS_GFNI + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_ALGAPI select CRYPTO_ARIA
arch/x86/crypto/aria-aesni-avx-asm_64.S +0 -10
@@ -295,7 +295,6 @@ vpshufb t1, t0, t2; \ vpxor t2, x7, x7; -#ifdef CONFIG_AS_GFNI #define aria_sbox_8way_gfni(x0, x1, x2, x3, \ x4, x5, x6, x7, \ t0, t1, t2, t3, \
@@ -318,8 +317,6 @@ vgf2p8affineinvqb $0, t2, x3, x3; \ vgf2p8affineinvqb $0, t2, x7, x7 -#endif /* CONFIG_AS_GFNI */ - #define aria_sbox_8way(x0, x1, x2, x3, \ x4, x5, x6, x7, \ t0, t1, t2, t3, \
@@ -561,7 +558,6 @@ y4, y5, y6, y7, \ mem_tmp, 8); -#ifdef CONFIG_AS_GFNI #define aria_fe_gfni(x0, x1, x2, x3, \ x4, x5, x6, x7, \ y0, y1, y2, y3, \
@@ -719,8 +715,6 @@ y4, y5, y6, y7, \ mem_tmp, 8); -#endif /* CONFIG_AS_GFNI */ - /* NB: section is mergeable, all elements must be aligned 16-byte blocks */ .section .rodata.cst16, "aM", @progbits, 16 .align 16
@@ -772,7 +766,6 @@ .Ltf_hi__x2__and__fwd_aff: .octa 0x3F893781E95FE1576CDA64D2BA0CB204 -#ifdef CONFIG_AS_GFNI /* AES affine: */ #define tf_aff_const BV8(1, 1, 0, 0, 0, 1, 1, 0) .Ltf_aff_bitmatrix:
@@ -871,7 +864,6 @@ BV8(0, 0, 0, 0, 0, 1, 0, 0), BV8(0, 0, 0, 0, 0, 0, 1, 0), BV8(0, 0, 0, 0, 0, 0, 0, 1)) -#endif /* CONFIG_AS_GFNI */ /* 4-bit mask */ .section .rodata.cst4.L0f0f0f0f, "aM", @progbits, 4
@@ -1140,7 +1132,6 @@ SYM_TYPED_FUNC_START(aria_aesni_avx_ctr_crypt_16way) RET; SYM_FUNC_END(aria_aesni_avx_ctr_crypt_16way) -#ifdef CONFIG_AS_GFNI SYM_FUNC_START_LOCAL(__aria_aesni_avx_gfni_crypt_16way) /* input: * %r9: rk
@@ -1359,4 +1350,3 @@ SYM_TYPED_FUNC_START(aria_aesni_avx_gfni_ctr_crypt_16way) FRAME_END RET; SYM_FUNC_END(aria_aesni_avx_gfni_ctr_crypt_16way) -#endif /* CONFIG_AS_GFNI */
arch/x86/crypto/aria-aesni-avx2-asm_64.S +1 -9
@@ -302,7 +302,6 @@ vpbroadcastb ((round * 16) + idx + 4)(rk), t0; \ vpxor t0, x7, x7; -#ifdef CONFIG_AS_GFNI #define aria_sbox_8way_gfni(x0, x1, x2, x3, \ x4, x5, x6, x7, \ t0, t1, t2, t3, \
@@ -325,7 +324,6 @@ vgf2p8affineinvqb $0, t2, x3, x3; \ vgf2p8affineinvqb $0, t2, x7, x7 -#endif /* CONFIG_AS_GFNI */ #define aria_sbox_8way(x0, x1, x2, x3, \ x4, x5, x6, x7, \ t0, t1, t2, t3, \
@@ -598,7 +596,7 @@ aria_load_state_8way(y0, y1, y2, y3, \ y4, y5, y6, y7, \ mem_tmp, 8); -#ifdef CONFIG_AS_GFNI + #define aria_fe_gfni(x0, x1, x2, x3, \ x4, x5, x6, x7, \ y0, y1, y2, y3, \
@@ -752,7 +750,6 @@ aria_load_state_8way(y0, y1, y2, y3, \ y4, y5, y6, y7, \ mem_tmp, 8); -#endif /* CONFIG_AS_GFNI */ .section .rodata.cst32.shufb_16x16b, "aM", @progbits, 32 .align 32
@@ -806,7 +803,6 @@ .Ltf_hi__x2__and__fwd_aff: .octa 0x3F893781E95FE1576CDA64D2BA0CB204 -#ifdef CONFIG_AS_GFNI .section .rodata.cst8, "aM", @progbits, 8 .align 8 /* AES affine: */
@@ -868,8 +864,6 @@ BV8(0, 0, 0, 0, 0, 0, 1, 0), BV8(0, 0, 0, 0, 0, 0, 0, 1)) -#endif /* CONFIG_AS_GFNI */ - /* 4-bit mask */ .section .rodata.cst4.L0f0f0f0f, "aM", @progbits, 4 .align 4
@@ -1219,7 +1213,6 @@ SYM_TYPED_FUNC_START(aria_aesni_avx2_ctr_crypt_32way) RET; SYM_FUNC_END(aria_aesni_avx2_ctr_crypt_32way) -#ifdef CONFIG_AS_GFNI SYM_FUNC_START_LOCAL(__aria_aesni_avx2_gfni_crypt_32way) /* input: * %r9: rk
@@ -1438,4 +1431,3 @@ SYM_TYPED_FUNC_START(aria_aesni_avx2_gfni_ctr_crypt_32way) FRAME_END RET; SYM_FUNC_END(aria_aesni_avx2_gfni_ctr_crypt_32way) -#endif /* CONFIG_AS_GFNI */
arch/x86/crypto/aria_aesni_avx2_glue.c +1 -3
@@ -26,7 +26,6 @@ asmlinkage void aria_aesni_avx2_ctr_crypt_32way(const void *ctx, u8 *dst,const u8 *src, u8 *keystream, u8 *iv);EXPORT_SYMBOL_GPL (aria_aesni_avx2_ctr_crypt_32way); -#ifdef CONFIG_AS_GFNI asmlinkage void aria_aesni_avx2_gfni_encrypt_32way(const void *ctx, u8 *dst,const u8 *src);EXPORT_SYMBOL_GPL (aria_aesni_avx2_gfni_encrypt_32way);
@@ -37,7 +36,6 @@ asmlinkage void aria_aesni_avx2_gfni_ctr_crypt_32way(const void *ctx, u8 *dst,const u8 *src, u8 *keystream, u8 *iv);EXPORT_SYMBOL_GPL (aria_aesni_avx2_gfni_ctr_crypt_32way); -#endif /* CONFIG_AS_GFNI */ static struct aria_avx_ops aria_ops;
@@ -213,7 +211,7 @@ static int __init aria_avx2_init(void)return -ENODEV ; } -if (boot_cpu_has (X86_FEATURE_GFNI ) &&IS_ENABLED (CONFIG_AS_GFNI )) { +if (boot_cpu_has (X86_FEATURE_GFNI )) { aria_ops.aria_encrypt_16way = aria_aesni_avx_gfni_encrypt_16way; aria_ops.aria_decrypt_16way = aria_aesni_avx_gfni_decrypt_16way; aria_ops.aria_ctr_crypt_16way = aria_aesni_avx_gfni_ctr_crypt_16way;
arch/x86/crypto/aria_aesni_avx_glue.c +1 -3
@@ -26,7 +26,6 @@ asmlinkage void aria_aesni_avx_ctr_crypt_16way(const void *ctx, u8 *dst,const u8 *src, u8 *keystream, u8 *iv);EXPORT_SYMBOL_GPL (aria_aesni_avx_ctr_crypt_16way); -#ifdef CONFIG_AS_GFNI asmlinkage void aria_aesni_avx_gfni_encrypt_16way(const void *ctx, u8 *dst,const u8 *src);EXPORT_SYMBOL_GPL (aria_aesni_avx_gfni_encrypt_16way);
@@ -37,7 +36,6 @@ asmlinkage void aria_aesni_avx_gfni_ctr_crypt_16way(const void *ctx, u8 *dst,const u8 *src, u8 *keystream, u8 *iv);EXPORT_SYMBOL_GPL (aria_aesni_avx_gfni_ctr_crypt_16way); -#endif /* CONFIG_AS_GFNI */ static struct aria_avx_ops aria_ops;
@@ -199,7 +197,7 @@ static int __init aria_avx_init(void)return -ENODEV ; } -if (boot_cpu_has (X86_FEATURE_GFNI ) &&IS_ENABLED (CONFIG_AS_GFNI )) { +if (boot_cpu_has (X86_FEATURE_GFNI )) { aria_ops.aria_encrypt_16way = aria_aesni_avx_gfni_encrypt_16way; aria_ops.aria_decrypt_16way = aria_aesni_avx_gfni_decrypt_16way; aria_ops.aria_ctr_crypt_16way = aria_aesni_avx_gfni_ctr_crypt_16way;
Signature · 1 line
2.50.1
PATCH 2/4 crypto:x86 - Remove CONFIG_AS_VAES
Current minimum required version of binutils is 2.30, which supports VAES instruction mnemonics.
Remove check for assembler support of VAES instructions and all relevant macros for conditional compilation.
No functional change intended.
--- arch/x86/Kconfig.assembler | 5 ----- arch/x86/crypto/Makefile | 2 +- arch/x86/crypto/aes-ctr-avx-x86_64.S | 4 ++-- arch/x86/crypto/aes-xts-avx-x86_64.S | 4 ++-- arch/x86/crypto/aesni-intel_glue.c | 14 +++++++------- 5 files changed, 12 insertions(+), 17 deletions(-)
arch/x86/Kconfig.assembler +0 -5
@@ -6,11 +6,6 @@ config AS_AVX512 help Supported by binutils >= 2.25 and LLVM integrated assembler -config AS_VAES - def_bool $(as-instr,vaesenc %ymm0$(comma)%ymm1$(comma)%ymm2) - help - Supported by binutils >= 2.30 and LLVM integrated assembler - config AS_VPCLMULQDQ def_bool $(as-instr,vpclmulqdq \$0x10$(comma)%ymm0$(comma)%ymm1$(comma)%ymm2) help
arch/x86/crypto/Makefile +1 -1
@@ -47,7 +47,7 @@ aesni-intel-y := aesni-intel_asm.o aesni-intel_glue.o aesni-intel-$(CONFIG_64BIT) += aes-ctr-avx-x86_64.o \ aes-gcm-aesni-x86_64.o \ aes-xts-avx-x86_64.o -ifeq ($(CONFIG_AS_VAES)$(CONFIG_AS_VPCLMULQDQ),yy) +ifeq ($(CONFIG_AS_VPCLMULQDQ),y) aesni-intel-$(CONFIG_64BIT) += aes-gcm-avx10-x86_64.o endif
arch/x86/crypto/aes-ctr-avx-x86_64.S +2 -2
@@ -552,7 +552,7 @@ SYM_TYPED_FUNC_START(aes_xctr_crypt_aesni_avx) _aes_ctr_crypt 1 SYM_FUNC_END(aes_xctr_crypt_aesni_avx) -#if defined(CONFIG_AS_VAES) && defined(CONFIG_AS_VPCLMULQDQ) +#if defined(CONFIG_AS_VPCLMULQDQ) .set VL, 32 .set USE_AVX512, 0 SYM_TYPED_FUNC_START(aes_ctr64_crypt_vaes_avx2)
@@ -570,4 +570,4 @@ SYM_FUNC_END(aes_ctr64_crypt_vaes_avx512) SYM_TYPED_FUNC_START(aes_xctr_crypt_vaes_avx512) _aes_ctr_crypt 1 SYM_FUNC_END(aes_xctr_crypt_vaes_avx512) -#endif // CONFIG_AS_VAES && CONFIG_AS_VPCLMULQDQ +#endif // CONFIG_AS_VPCLMULQDQ
arch/x86/crypto/aes-xts-avx-x86_64.S +2 -2
@@ -886,7 +886,7 @@ SYM_TYPED_FUNC_START(aes_xts_decrypt_aesni_avx) _aes_xts_crypt 0 SYM_FUNC_END(aes_xts_decrypt_aesni_avx) -#if defined(CONFIG_AS_VAES) && defined(CONFIG_AS_VPCLMULQDQ) +#if defined(CONFIG_AS_VPCLMULQDQ) .set VL, 32 .set USE_AVX512, 0 SYM_TYPED_FUNC_START(aes_xts_encrypt_vaes_avx2)
@@ -904,4 +904,4 @@ SYM_FUNC_END(aes_xts_encrypt_vaes_avx512) SYM_TYPED_FUNC_START(aes_xts_decrypt_vaes_avx512) _aes_xts_crypt 0 SYM_FUNC_END(aes_xts_decrypt_vaes_avx512) -#endif /* CONFIG_AS_VAES && CONFIG_AS_VPCLMULQDQ */ +#endif /* CONFIG_AS_VPCLMULQDQ */
arch/x86/crypto/aesni-intel_glue.c +7 -7
@@ -828,7 +828,7 @@ static struct skcipher_alg skcipher_algs_##suffix[] = {{ \ }}DEFINE_AVX_SKCIPHER_ALGS (aesni_avx,"aesni-avx" ,500 ); -#if defined(CONFIG_AS_VAES ) && defined(CONFIG_AS_VPCLMULQDQ ) +#if defined(CONFIG_AS_VPCLMULQDQ )DEFINE_AVX_SKCIPHER_ALGS (vaes_avx2,"vaes-avx2" ,600 );DEFINE_AVX_SKCIPHER_ALGS (vaes_avx512,"vaes-avx512" ,800 );#endif
@@ -912,7 +912,7 @@ struct aes_gcm_key_avx10 {#define FLAG_RFC4106 BIT(0)#define FLAG_ENC BIT(1)#define FLAG_AVX BIT(2) -#if defined(CONFIG_AS_VAES ) && defined(CONFIG_AS_VPCLMULQDQ ) +#if defined(CONFIG_AS_VPCLMULQDQ )# define FLAG_AVX10_256 BIT(3)# define FLAG_AVX10_512 BIT(4)#else
@@ -1519,7 +1519,7 @@ DEFINE_GCM_ALGS(aesni_avx, FLAG_AVX,"generic-gcm-aesni-avx" ,"rfc4106-gcm-aesni-avx" , AES_GCM_KEY_AESNI_SIZE, 500); -#if defined(CONFIG_AS_VAES ) && defined(CONFIG_AS_VPCLMULQDQ ) +#if defined(CONFIG_AS_VPCLMULQDQ )/* aes_gcm_algs_vaes_avx10_256 */ DEFINE_GCM_ALGS(vaes_avx10_256, FLAG_AVX10_256, "generic-gcm-vaes-avx10_256", "rfc4106-gcm-vaes-avx10_256",
@@ -1529,7 +1529,7 @@ DEFINE_GCM_ALGS(vaes_avx10_256, FLAG_AVX10_256,DEFINE_GCM_ALGS (vaes_avx10_512,FLAG_AVX10_512 ,"generic-gcm-vaes-avx10_512" ,"rfc4106-gcm-vaes-avx10_512" ,AES_GCM_KEY_AVX10_SIZE ,800 ); -#endif /* CONFIG_AS_VAES && CONFIG_AS_VPCLMULQDQ */ +#endif /* CONFIG_AS_VPCLMULQDQ */ static int __init register_avx_algs (void ) {
@@ -1551,7 +1551,7 @@ static int __init register_avx_algs(void)* Similarly, the assembler support was added at about the same time. * For simplicity, just always check for VAES and VPCLMULQDQ together. */ -#if defined(CONFIG_AS_VAES ) && defined(CONFIG_AS_VPCLMULQDQ ) +#if defined(CONFIG_AS_VPCLMULQDQ ) if (!boot_cpu_has(X86_FEATURE_AVX2) || !boot_cpu_has(X86_FEATURE_VAES) || !boot_cpu_has(X86_FEATURE_VPCLMULQDQ) ||
@@ -1592,7 +1592,7 @@ static int __init register_avx_algs(void) ARRAY_SIZE(aes_gcm_algs_vaes_avx10_512));if (err)return err; -#endif /* CONFIG_AS_VAES && CONFIG_AS_VPCLMULQDQ */ +#endif /* CONFIG_AS_VPCLMULQDQ */ return 0 ; }
@@ -1607,7 +1607,7 @@ static void unregister_avx_algs(void) {unregister_skciphers (skcipher_algs_aesni_avx);unregister_aeads (aes_gcm_algs_aesni_avx); -#if defined(CONFIG_AS_VAES ) && defined(CONFIG_AS_VPCLMULQDQ ) +#if defined(CONFIG_AS_VPCLMULQDQ )unregister_skciphers (skcipher_algs_vaes_avx2);unregister_skciphers (skcipher_algs_vaes_avx512);unregister_aeads (aes_gcm_algs_vaes_avx10_256);
Signature · 1 line
2.50.1
Re: [PATCH 2/4] crypto:x86 - Remove CONFIG_AS_VAES
Quoted 16 lines · Uros Bizjak
Current minimum required version of binutils is 2.30, which supports VAES instruction mnemonics.
Remove check for assembler support of VAES instructions and all relevant macros for conditional compilation.
No functional change intended.
Signed-off-by Uros Bizjak <[email protected]>Cc Herbert Xu <[email protected]>Cc "David S. Miller" <[email protected]>Cc Thomas Gleixner <[email protected]>Cc Ingo Molnar <[email protected]>Cc Borislav Petkov <[email protected]>Cc Dave Hansen <[email protected]>Cc "H. Peter Anvin" <[email protected]>
Quoted 7 lines
--- arch/x86/Kconfig.assembler | 5 ----- arch/x86/crypto/Makefile | 2 +- arch/x86/crypto/aes-ctr-avx-x86_64.S | 4 ++-- arch/x86/crypto/aes-xts-avx-x86_64.S | 4 ++-- arch/x86/crypto/aesni-intel_glue.c | 14 +++++++------- 5 files changed, 12 insertions(+), 17 deletions(-)
Thanks,
Signature · 3 lines
Email: Herbert Xu <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
[tip: x86/cleanups] crypto: X86 - Remove CONFIG_AS_VAES
In reply to Uros BizjakThe following commit has been merged into the x86/cleanups branch of tip:
The following commit has been merged into the x86/cleanups branch of tip:
Commit-ID: 4593311290006793a38a9cbd91d4a65b63cd7b76 Gitweb: https://git.kernel.org/tip/4593311290006793a38a9cbd91d4a65b63cd7b76 Author: Uros Bizjak <[email protected]> AuthorDate: Tue, 19 Aug 2025 10:57:50 +02:00 Committer: Borislav Petkov (AMD) <[email protected]> CommitterDate: Thu, 21 Aug 2025 12:23:28 +02:00
crypto: X86 - Remove CONFIG_AS_VAES
Current minimum required version of binutils is 2.30, which supports VAES instruction mnemonics.
Remove check for assembler support of VAES instructions and all relevant macros for conditional compilation.
No functional change intended.
--- arch/x86/Kconfig.assembler | 5 ----- arch/x86/crypto/Makefile | 2 +- arch/x86/crypto/aes-ctr-avx-x86_64.S | 4 ++-- arch/x86/crypto/aes-xts-avx-x86_64.S | 4 ++-- arch/x86/crypto/aesni-intel_glue.c | 14 +++++++------- 5 files changed, 12 insertions(+), 17 deletions(-)
arch/x86/Kconfig.assembler +0 -5
@@ -6,11 +6,6 @@ config AS_AVX512 help Supported by binutils >= 2.25 and LLVM integrated assembler -config AS_VAES - def_bool $(as-instr,vaesenc %ymm0$(comma)%ymm1$(comma)%ymm2) - help - Supported by binutils >= 2.30 and LLVM integrated assembler - config AS_VPCLMULQDQ def_bool $(as-instr,vpclmulqdq \$0x10$(comma)%ymm0$(comma)%ymm1$(comma)%ymm2) help
arch/x86/crypto/Makefile +1 -1
@@ -47,7 +47,7 @@ aesni-intel-y := aesni-intel_asm.o aesni-intel_glue.o aesni-intel-$(CONFIG_64BIT) += aes-ctr-avx-x86_64.o \ aes-gcm-aesni-x86_64.o \ aes-xts-avx-x86_64.o -ifeq ($(CONFIG_AS_VAES)$(CONFIG_AS_VPCLMULQDQ),yy) +ifeq ($(CONFIG_AS_VPCLMULQDQ),y) aesni-intel-$(CONFIG_64BIT) += aes-gcm-avx10-x86_64.o endif
arch/x86/crypto/aes-ctr-avx-x86_64.S +2 -2
@@ -552,7 +552,7 @@ SYM_TYPED_FUNC_START(aes_xctr_crypt_aesni_avx) _aes_ctr_crypt 1 SYM_FUNC_END(aes_xctr_crypt_aesni_avx) -#if defined(CONFIG_AS_VAES) && defined(CONFIG_AS_VPCLMULQDQ) +#if defined(CONFIG_AS_VPCLMULQDQ) .set VL, 32 .set USE_AVX512, 0 SYM_TYPED_FUNC_START(aes_ctr64_crypt_vaes_avx2)
@@ -570,4 +570,4 @@ SYM_FUNC_END(aes_ctr64_crypt_vaes_avx512) SYM_TYPED_FUNC_START(aes_xctr_crypt_vaes_avx512) _aes_ctr_crypt 1 SYM_FUNC_END(aes_xctr_crypt_vaes_avx512) -#endif // CONFIG_AS_VAES && CONFIG_AS_VPCLMULQDQ +#endif // CONFIG_AS_VPCLMULQDQ
arch/x86/crypto/aes-xts-avx-x86_64.S +2 -2
@@ -886,7 +886,7 @@ SYM_TYPED_FUNC_START(aes_xts_decrypt_aesni_avx) _aes_xts_crypt 0 SYM_FUNC_END(aes_xts_decrypt_aesni_avx) -#if defined(CONFIG_AS_VAES) && defined(CONFIG_AS_VPCLMULQDQ) +#if defined(CONFIG_AS_VPCLMULQDQ) .set VL, 32 .set USE_AVX512, 0 SYM_TYPED_FUNC_START(aes_xts_encrypt_vaes_avx2)
@@ -904,4 +904,4 @@ SYM_FUNC_END(aes_xts_encrypt_vaes_avx512) SYM_TYPED_FUNC_START(aes_xts_decrypt_vaes_avx512) _aes_xts_crypt 0 SYM_FUNC_END(aes_xts_decrypt_vaes_avx512) -#endif /* CONFIG_AS_VAES && CONFIG_AS_VPCLMULQDQ */ +#endif /* CONFIG_AS_VPCLMULQDQ */
arch/x86/crypto/aesni-intel_glue.c +7 -7
@@ -828,7 +828,7 @@ static struct skcipher_alg skcipher_algs_##suffix[] = {{ \ }}DEFINE_AVX_SKCIPHER_ALGS (aesni_avx,"aesni-avx" ,500 ); -#if defined(CONFIG_AS_VAES ) && defined(CONFIG_AS_VPCLMULQDQ ) +#if defined(CONFIG_AS_VPCLMULQDQ )DEFINE_AVX_SKCIPHER_ALGS (vaes_avx2,"vaes-avx2" ,600 );DEFINE_AVX_SKCIPHER_ALGS (vaes_avx512,"vaes-avx512" ,800 );#endif
@@ -912,7 +912,7 @@ struct aes_gcm_key_avx10 {#define FLAG_RFC4106 BIT(0)#define FLAG_ENC BIT(1)#define FLAG_AVX BIT(2) -#if defined(CONFIG_AS_VAES ) && defined(CONFIG_AS_VPCLMULQDQ ) +#if defined(CONFIG_AS_VPCLMULQDQ )# define FLAG_AVX10_256 BIT(3)# define FLAG_AVX10_512 BIT(4)#else
@@ -1519,7 +1519,7 @@ DEFINE_GCM_ALGS(aesni_avx, FLAG_AVX,"generic-gcm-aesni-avx" ,"rfc4106-gcm-aesni-avx" , AES_GCM_KEY_AESNI_SIZE, 500); -#if defined(CONFIG_AS_VAES ) && defined(CONFIG_AS_VPCLMULQDQ ) +#if defined(CONFIG_AS_VPCLMULQDQ )/* aes_gcm_algs_vaes_avx10_256 */ DEFINE_GCM_ALGS(vaes_avx10_256, FLAG_AVX10_256, "generic-gcm-vaes-avx10_256", "rfc4106-gcm-vaes-avx10_256",
@@ -1529,7 +1529,7 @@ DEFINE_GCM_ALGS(vaes_avx10_256, FLAG_AVX10_256,DEFINE_GCM_ALGS (vaes_avx10_512,FLAG_AVX10_512 ,"generic-gcm-vaes-avx10_512" ,"rfc4106-gcm-vaes-avx10_512" ,AES_GCM_KEY_AVX10_SIZE ,800 ); -#endif /* CONFIG_AS_VAES && CONFIG_AS_VPCLMULQDQ */ +#endif /* CONFIG_AS_VPCLMULQDQ */ static int __init register_avx_algs (void ) {
@@ -1551,7 +1551,7 @@ static int __init register_avx_algs(void)* Similarly, the assembler support was added at about the same time. * For simplicity, just always check for VAES and VPCLMULQDQ together. */ -#if defined(CONFIG_AS_VAES ) && defined(CONFIG_AS_VPCLMULQDQ ) +#if defined(CONFIG_AS_VPCLMULQDQ ) if (!boot_cpu_has(X86_FEATURE_AVX2) || !boot_cpu_has(X86_FEATURE_VAES) || !boot_cpu_has(X86_FEATURE_VPCLMULQDQ) ||
@@ -1592,7 +1592,7 @@ static int __init register_avx_algs(void) ARRAY_SIZE(aes_gcm_algs_vaes_avx10_512));if (err)return err; -#endif /* CONFIG_AS_VAES && CONFIG_AS_VPCLMULQDQ */ +#endif /* CONFIG_AS_VPCLMULQDQ */ return 0 ; }
@@ -1607,7 +1607,7 @@ static void unregister_avx_algs(void) {unregister_skciphers (skcipher_algs_aesni_avx);unregister_aeads (aes_gcm_algs_aesni_avx); -#if defined(CONFIG_AS_VAES ) && defined(CONFIG_AS_VPCLMULQDQ ) +#if defined(CONFIG_AS_VPCLMULQDQ )unregister_skciphers (skcipher_algs_vaes_avx2);unregister_skciphers (skcipher_algs_vaes_avx512);unregister_aeads (aes_gcm_algs_vaes_avx10_256);
Re: [tip: x86/cleanups] crypto: X86 - Remove CONFIG_AS_VAES
Quoted 10 lines · On Thu, Aug 21, 2025 at 12:35:31PM -0000, tip-bot2 for Uros Bizjak wrote:
The following commit has been merged into the x86/cleanups branch of tip:
Commit-ID: 4593311290006793a38a9cbd91d4a65b63cd7b76 Gitweb: https://git.kernel.org/tip/4593311290006793a38a9cbd91d4a65b63cd7b76 Author: Uros Bizjak <[email protected]> AuthorDate: Tue, 19 Aug 2025 10:57:50 +02:00 Committer: Borislav Petkov (AMD) <[email protected]> CommitterDate: Thu, 21 Aug 2025 12:23:28 +02:00crypto: X86 - Remove
CONFIG_AS_VAES
Hi! Just wanted to confirm that this is going to make it into an x86 pull request for 6.18?
- Eric
Borislav Petkov
maintainerRe: [tip: x86/cleanups] crypto: X86 - Remove CONFIG_AS_VAES
Quoted 10 lines · Eric Biggers
Quoted 9 lines · On Thu, Aug 21, 2025 at 12:35:31PM -0000, tip-bot2 for Uros Bizjak wrote:
The following commit has been merged into the x86/cleanups branch of tip:
Commit-ID: 4593311290006793a38a9cbd91d4a65b63cd7b76 Gitweb: https://git.kernel.org/tip/4593311290006793a38a9cbd91d4a65b63cd7b76 Author: Uros Bizjak <[email protected]> AuthorDate: Tue, 19 Aug 2025 10:57:50 +02:00 Committer: Borislav Petkov (AMD) <[email protected]> CommitterDate: Thu, 21 Aug 2025 12:23:28 +02:00
Quoted 4 lines
Quoted 1 line
crypto: X86 - Remove
CONFIG_AS_VAESHi! Just wanted to confirm that this is going to make it into an x86 pull request for 6.18?
Bah, looks like one of us went on vacation after sending a bunch of pull requests expecting the others to send that one. Oh well, it hasn't happened.
Thanks for letting me know, I'll send them tomorrow.
Signature · 4 lines
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquettePATCH 3/4 crypto:x86 - Remove CONFIG_AS_VPCLMULQDQ
In reply to Uros BizjakCurrent minimum required version of binutils is 2.30, which supports VPCLMULQDQ instruction mnemonics.
Remove check for assembler support of VPCLMULQDQ instructions and all relevant macros for conditional compilation.
No functional change intended.
--- arch/x86/Kconfig.assembler | 5 ----- arch/x86/crypto/Makefile | 6 ++---- arch/x86/crypto/aes-ctr-avx-x86_64.S | 2 -- arch/x86/crypto/aes-xts-avx-x86_64.S | 2 -- arch/x86/crypto/aesni-intel_glue.c | 22 +++------------------- 5 files changed, 5 insertions(+), 32 deletions(-)
arch/x86/Kconfig.assembler +0 -5
@@ -6,11 +6,6 @@ config AS_AVX512 help Supported by binutils >= 2.25 and LLVM integrated assembler -config AS_VPCLMULQDQ - def_bool $(as-instr,vpclmulqdq \$0x10$(comma)%ymm0$(comma)%ymm1$(comma)%ymm2) - help - Supported by binutils >= 2.30 and LLVM integrated assembler - config AS_WRUSS def_bool $(as-instr64,wrussq %rax$(comma)(%rbx)) help
arch/x86/crypto/Makefile +2 -4
@@ -46,10 +46,8 @@ obj-$(CONFIG_CRYPTO_AES_NI_INTEL) += aesni-intel.o aesni-intel-y := aesni-intel_asm.o aesni-intel_glue.o aesni-intel-$(CONFIG_64BIT) += aes-ctr-avx-x86_64.o \ aes-gcm-aesni-x86_64.o \ - aes-xts-avx-x86_64.o -ifeq ($(CONFIG_AS_VPCLMULQDQ),y) -aesni-intel-$(CONFIG_64BIT) += aes-gcm-avx10-x86_64.o -endif + aes-xts-avx-x86_64.o \ + aes-gcm-avx10-x86_64.o obj-$(CONFIG_CRYPTO_SHA1_SSSE3) += sha1-ssse3.o sha1-ssse3-y := sha1_avx2_x86_64_asm.o sha1_ssse3_asm.o sha1_ni_asm.o sha1_ssse3_glue.o
arch/x86/crypto/aes-ctr-avx-x86_64.S +0 -2
@@ -552,7 +552,6 @@ SYM_TYPED_FUNC_START(aes_xctr_crypt_aesni_avx) _aes_ctr_crypt 1 SYM_FUNC_END(aes_xctr_crypt_aesni_avx) -#if defined(CONFIG_AS_VPCLMULQDQ) .set VL, 32 .set USE_AVX512, 0 SYM_TYPED_FUNC_START(aes_ctr64_crypt_vaes_avx2)
@@ -570,4 +569,3 @@ SYM_FUNC_END(aes_ctr64_crypt_vaes_avx512) SYM_TYPED_FUNC_START(aes_xctr_crypt_vaes_avx512) _aes_ctr_crypt 1 SYM_FUNC_END(aes_xctr_crypt_vaes_avx512) -#endif // CONFIG_AS_VPCLMULQDQ
arch/x86/crypto/aes-xts-avx-x86_64.S +0 -2
@@ -886,7 +886,6 @@ SYM_TYPED_FUNC_START(aes_xts_decrypt_aesni_avx) _aes_xts_crypt 0 SYM_FUNC_END(aes_xts_decrypt_aesni_avx) -#if defined(CONFIG_AS_VPCLMULQDQ) .set VL, 32 .set USE_AVX512, 0 SYM_TYPED_FUNC_START(aes_xts_encrypt_vaes_avx2)
@@ -904,4 +903,3 @@ SYM_FUNC_END(aes_xts_encrypt_vaes_avx512) SYM_TYPED_FUNC_START(aes_xts_decrypt_vaes_avx512) _aes_xts_crypt 0 SYM_FUNC_END(aes_xts_decrypt_vaes_avx512) -#endif /* CONFIG_AS_VPCLMULQDQ */
arch/x86/crypto/aesni-intel_glue.c +3 -19
@@ -828,10 +828,8 @@ static struct skcipher_alg skcipher_algs_##suffix[] = {{ \ }}DEFINE_AVX_SKCIPHER_ALGS (aesni_avx,"aesni-avx" ,500 ); -#if defined(CONFIG_AS_VPCLMULQDQ )DEFINE_AVX_SKCIPHER_ALGS (vaes_avx2,"vaes-avx2" ,600 );DEFINE_AVX_SKCIPHER_ALGS (vaes_avx512,"vaes-avx512" ,800 ); -#endif /* The common part of the x86_64 AES-GCM key struct */ struct aes_gcm_key {
@@ -912,17 +910,8 @@ struct aes_gcm_key_avx10 {#define FLAG_RFC4106 BIT(0)#define FLAG_ENC BIT(1)#define FLAG_AVX BIT(2) -#if defined(CONFIG_AS_VPCLMULQDQ ) -# define FLAG_AVX10_256 BIT(3) -# define FLAG_AVX10_512 BIT(4) -#else -/* -* This should cause all calls to the AVX10 assembly functions to be -* optimized out, avoiding the need to ifdef each call individually. -*/ -# define FLAG_AVX10_256 0 -# define FLAG_AVX10_512 0 -#endif +#define FLAG_AVX10_256 BIT(3) +#define FLAG_AVX10_512 BIT(4)static inline struct aes_gcm_key *aes_gcm_key_get (struct crypto_aead *tfm,int flags)
@@ -1519,7 +1508,6 @@ DEFINE_GCM_ALGS(aesni_avx, FLAG_AVX,"generic-gcm-aesni-avx" ,"rfc4106-gcm-aesni-avx" , AES_GCM_KEY_AESNI_SIZE, 500); -#if defined(CONFIG_AS_VPCLMULQDQ )/* aes_gcm_algs_vaes_avx10_256 */ DEFINE_GCM_ALGS(vaes_avx10_256, FLAG_AVX10_256, "generic-gcm-vaes-avx10_256", "rfc4106-gcm-vaes-avx10_256",
@@ -1529,7 +1517,6 @@ DEFINE_GCM_ALGS(vaes_avx10_256, FLAG_AVX10_256,DEFINE_GCM_ALGS (vaes_avx10_512,FLAG_AVX10_512 ,"generic-gcm-vaes-avx10_512" ,"rfc4106-gcm-vaes-avx10_512" ,AES_GCM_KEY_AVX10_SIZE ,800 ); -#endif /* CONFIG_AS_VPCLMULQDQ */ static int __init register_avx_algs (void ) {
@@ -1551,7 +1538,6 @@ static int __init register_avx_algs(void)* Similarly, the assembler support was added at about the same time. * For simplicity, just always check for VAES and VPCLMULQDQ together. */ -#if defined(CONFIG_AS_VPCLMULQDQ ) if (!boot_cpu_has(X86_FEATURE_AVX2) || !boot_cpu_has(X86_FEATURE_VAES) || !boot_cpu_has(X86_FEATURE_VPCLMULQDQ) ||
@@ -1592,7 +1578,7 @@ static int __init register_avx_algs(void) ARRAY_SIZE(aes_gcm_algs_vaes_avx10_512));if (err)return err; -#endif /* CONFIG_AS_VPCLMULQDQ */ +return 0 ; }
@@ -1607,12 +1593,10 @@ static void unregister_avx_algs(void) {unregister_skciphers (skcipher_algs_aesni_avx);unregister_aeads (aes_gcm_algs_aesni_avx); -#if defined(CONFIG_AS_VPCLMULQDQ )unregister_skciphers (skcipher_algs_vaes_avx2);unregister_skciphers (skcipher_algs_vaes_avx512);unregister_aeads (aes_gcm_algs_vaes_avx10_256);unregister_aeads (aes_gcm_algs_vaes_avx10_512); -#endif }#else /* CONFIG_X86_64 */ static struct aead_alg aes_gcm_algs_aesni[0 ];
Signature · 1 line
2.50.1
Re: [PATCH 3/4] crypto:x86 - Remove CONFIG_AS_VPCLMULQDQ
Quoted 16 lines · Uros Bizjak
Current minimum required version of binutils is 2.30, which supports VPCLMULQDQ instruction mnemonics.
Remove check for assembler support of VPCLMULQDQ instructions and all relevant macros for conditional compilation.
No functional change intended.
Signed-off-by Uros Bizjak <[email protected]>Cc Herbert Xu <[email protected]>Cc "David S. Miller" <[email protected]>Cc Thomas Gleixner <[email protected]>Cc Ingo Molnar <[email protected]>Cc Borislav Petkov <[email protected]>Cc Dave Hansen <[email protected]>Cc "H. Peter Anvin" <[email protected]>
Quoted 7 lines
--- arch/x86/Kconfig.assembler | 5 ----- arch/x86/crypto/Makefile | 6 ++---- arch/x86/crypto/aes-ctr-avx-x86_64.S | 2 -- arch/x86/crypto/aes-xts-avx-x86_64.S | 2 -- arch/x86/crypto/aesni-intel_glue.c | 22 +++------------------- 5 files changed, 5 insertions(+), 32 deletions(-)
Thanks,
Signature · 3 lines
Email: Herbert Xu <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
[tip: x86/cleanups] crypto: x86 - Remove CONFIG_AS_VPCLMULQDQ
In reply to Uros BizjakThe following commit has been merged into the x86/cleanups branch of tip:
The following commit has been merged into the x86/cleanups branch of tip:
Commit-ID: e084e9f8151f1d37b085317752d36b4fa2fec9b9 Gitweb: https://git.kernel.org/tip/e084e9f8151f1d37b085317752d36b4fa2fec9b9 Author: Uros Bizjak <[email protected]> AuthorDate: Tue, 19 Aug 2025 10:57:51 +02:00 Committer: Borislav Petkov (AMD) <[email protected]> CommitterDate: Thu, 21 Aug 2025 14:32:41 +02:00
crypto: x86 - Remove CONFIG_AS_VPCLMULQDQ
Current minimum required version of binutils is 2.30, which supports VPCLMULQDQ instruction mnemonics.
Remove check for assembler support of VPCLMULQDQ instructions and all relevant macros for conditional compilation.
No functional change intended.
--- arch/x86/Kconfig.assembler | 5 ----- arch/x86/crypto/Makefile | 6 ++---- arch/x86/crypto/aes-ctr-avx-x86_64.S | 2 -- arch/x86/crypto/aes-xts-avx-x86_64.S | 2 -- arch/x86/crypto/aesni-intel_glue.c | 22 +++------------------- 5 files changed, 5 insertions(+), 32 deletions(-)
arch/x86/Kconfig.assembler +0 -5
@@ -6,11 +6,6 @@ config AS_AVX512 help Supported by binutils >= 2.25 and LLVM integrated assembler -config AS_VPCLMULQDQ - def_bool $(as-instr,vpclmulqdq \$0x10$(comma)%ymm0$(comma)%ymm1$(comma)%ymm2) - help - Supported by binutils >= 2.30 and LLVM integrated assembler - config AS_WRUSS def_bool $(as-instr64,wrussq %rax$(comma)(%rbx)) help
arch/x86/crypto/Makefile +2 -4
@@ -46,10 +46,8 @@ obj-$(CONFIG_CRYPTO_AES_NI_INTEL) += aesni-intel.o aesni-intel-y := aesni-intel_asm.o aesni-intel_glue.o aesni-intel-$(CONFIG_64BIT) += aes-ctr-avx-x86_64.o \ aes-gcm-aesni-x86_64.o \ - aes-xts-avx-x86_64.o -ifeq ($(CONFIG_AS_VPCLMULQDQ),y) -aesni-intel-$(CONFIG_64BIT) += aes-gcm-avx10-x86_64.o -endif + aes-xts-avx-x86_64.o \ + aes-gcm-avx10-x86_64.o obj-$(CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL) += ghash-clmulni-intel.o ghash-clmulni-intel-y := ghash-clmulni-intel_asm.o ghash-clmulni-intel_glue.o
arch/x86/crypto/aes-ctr-avx-x86_64.S +0 -2
@@ -552,7 +552,6 @@ SYM_TYPED_FUNC_START(aes_xctr_crypt_aesni_avx) _aes_ctr_crypt 1 SYM_FUNC_END(aes_xctr_crypt_aesni_avx) -#if defined(CONFIG_AS_VPCLMULQDQ) .set VL, 32 .set USE_AVX512, 0 SYM_TYPED_FUNC_START(aes_ctr64_crypt_vaes_avx2)
@@ -570,4 +569,3 @@ SYM_FUNC_END(aes_ctr64_crypt_vaes_avx512) SYM_TYPED_FUNC_START(aes_xctr_crypt_vaes_avx512) _aes_ctr_crypt 1 SYM_FUNC_END(aes_xctr_crypt_vaes_avx512) -#endif // CONFIG_AS_VPCLMULQDQ
arch/x86/crypto/aes-xts-avx-x86_64.S +0 -2
@@ -886,7 +886,6 @@ SYM_TYPED_FUNC_START(aes_xts_decrypt_aesni_avx) _aes_xts_crypt 0 SYM_FUNC_END(aes_xts_decrypt_aesni_avx) -#if defined(CONFIG_AS_VPCLMULQDQ) .set VL, 32 .set USE_AVX512, 0 SYM_TYPED_FUNC_START(aes_xts_encrypt_vaes_avx2)
@@ -904,4 +903,3 @@ SYM_FUNC_END(aes_xts_encrypt_vaes_avx512) SYM_TYPED_FUNC_START(aes_xts_decrypt_vaes_avx512) _aes_xts_crypt 0 SYM_FUNC_END(aes_xts_decrypt_vaes_avx512) -#endif /* CONFIG_AS_VPCLMULQDQ */
arch/x86/crypto/aesni-intel_glue.c +3 -19
@@ -828,10 +828,8 @@ static struct skcipher_alg skcipher_algs_##suffix[] = {{ \ }}DEFINE_AVX_SKCIPHER_ALGS (aesni_avx,"aesni-avx" ,500 ); -#if defined(CONFIG_AS_VPCLMULQDQ )DEFINE_AVX_SKCIPHER_ALGS (vaes_avx2,"vaes-avx2" ,600 );DEFINE_AVX_SKCIPHER_ALGS (vaes_avx512,"vaes-avx512" ,800 ); -#endif /* The common part of the x86_64 AES-GCM key struct */ struct aes_gcm_key {
@@ -912,17 +910,8 @@ struct aes_gcm_key_avx10 {#define FLAG_RFC4106 BIT(0)#define FLAG_ENC BIT(1)#define FLAG_AVX BIT(2) -#if defined(CONFIG_AS_VPCLMULQDQ ) -# define FLAG_AVX10_256 BIT(3) -# define FLAG_AVX10_512 BIT(4) -#else -/* -* This should cause all calls to the AVX10 assembly functions to be -* optimized out, avoiding the need to ifdef each call individually. -*/ -# define FLAG_AVX10_256 0 -# define FLAG_AVX10_512 0 -#endif +#define FLAG_AVX10_256 BIT(3) +#define FLAG_AVX10_512 BIT(4)static inline struct aes_gcm_key *aes_gcm_key_get (struct crypto_aead *tfm,int flags)
@@ -1519,7 +1508,6 @@ DEFINE_GCM_ALGS(aesni_avx, FLAG_AVX,"generic-gcm-aesni-avx" ,"rfc4106-gcm-aesni-avx" , AES_GCM_KEY_AESNI_SIZE, 500); -#if defined(CONFIG_AS_VPCLMULQDQ )/* aes_gcm_algs_vaes_avx10_256 */ DEFINE_GCM_ALGS(vaes_avx10_256, FLAG_AVX10_256, "generic-gcm-vaes-avx10_256", "rfc4106-gcm-vaes-avx10_256",
@@ -1529,7 +1517,6 @@ DEFINE_GCM_ALGS(vaes_avx10_256, FLAG_AVX10_256,DEFINE_GCM_ALGS (vaes_avx10_512,FLAG_AVX10_512 ,"generic-gcm-vaes-avx10_512" ,"rfc4106-gcm-vaes-avx10_512" ,AES_GCM_KEY_AVX10_SIZE ,800 ); -#endif /* CONFIG_AS_VPCLMULQDQ */ static int __init register_avx_algs (void ) {
@@ -1551,7 +1538,6 @@ static int __init register_avx_algs(void)* Similarly, the assembler support was added at about the same time. * For simplicity, just always check for VAES and VPCLMULQDQ together. */ -#if defined(CONFIG_AS_VPCLMULQDQ ) if (!boot_cpu_has(X86_FEATURE_AVX2) || !boot_cpu_has(X86_FEATURE_VAES) || !boot_cpu_has(X86_FEATURE_VPCLMULQDQ) ||
@@ -1592,7 +1578,7 @@ static int __init register_avx_algs(void) ARRAY_SIZE(aes_gcm_algs_vaes_avx10_512));if (err)return err; -#endif /* CONFIG_AS_VPCLMULQDQ */ +return 0 ; }
@@ -1607,12 +1593,10 @@ static void unregister_avx_algs(void) {unregister_skciphers (skcipher_algs_aesni_avx);unregister_aeads (aes_gcm_algs_aesni_avx); -#if defined(CONFIG_AS_VPCLMULQDQ )unregister_skciphers (skcipher_algs_vaes_avx2);unregister_skciphers (skcipher_algs_vaes_avx512);unregister_aeads (aes_gcm_algs_vaes_avx10_256);unregister_aeads (aes_gcm_algs_vaes_avx10_512); -#endif }#else /* CONFIG_X86_64 */ static struct aead_alg aes_gcm_algs_aesni[0 ];
PATCH 4/4 x86: Remove CONFIG_AS_AVX512
In reply to Uros BizjakCommit 5f5305dea066 ("raid6: skip avx512 checks") and commit bc23fe6dc172 ("crypto: x86 - Remove CONFIG_AS_AVX512 handling") removed all uses of CONFIG_AS_AVX512.
Remove check for assembler support of AVX-512 instructions.
--- arch/x86/Kconfig.assembler | 5 ----- 1 file changed, 5 deletions(-)
arch/x86/Kconfig.assembler +0 -5
@@ -1,11 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2020 Jason A. Donenfeld <[email protected]>. All Rights Reserved. -config AS_AVX512 - def_bool $(as-instr,vpmovm2b %k1$(comma)%zmm5) - help - Supported by binutils >= 2.25 and LLVM integrated assembler - config AS_WRUSS def_bool $(as-instr64,wrussq %rax$(comma)(%rbx)) help
Signature · 1 line
2.50.1
[tip: x86/cleanups] x86/kconfig: Remove CONFIG_AS_AVX512
The following commit has been merged into the x86/cleanups branch of tip:
The following commit has been merged into the x86/cleanups branch of tip:
Commit-ID: ae7c0996c0e0f7d3bd3665020e1fbb4d99b7373e Gitweb: https://git.kernel.org/tip/ae7c0996c0e0f7d3bd3665020e1fbb4d99b7373e Author: Uros Bizjak <[email protected]> AuthorDate: Tue, 19 Aug 2025 10:57:52 +02:00 Committer: Borislav Petkov (AMD) <[email protected]> CommitterDate: Thu, 21 Aug 2025 14:35:01 +02:00
x86/kconfig: Remove CONFIG_AS_AVX512
Commit
5f5305dea066 ("raid6: skip avx512 checks")
and commit
bc23fe6dc172 ("crypto: x86 - Remove CONFIG_AS_AVX512 handling")
removed all uses of CONFIG_AS_AVX512.
Remove check for assembler support of AVX-512 instructions.
--- arch/x86/Kconfig.assembler | 5 ----- 1 file changed, 5 deletions(-)
arch/x86/Kconfig.assembler +0 -5
@@ -1,11 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2020 Jason A. Donenfeld <[email protected]>. All Rights Reserved. -config AS_AVX512 - def_bool $(as-instr,vpmovm2b %k1$(comma)%zmm5) - help - Supported by binutils >= 2.25 and LLVM integrated assembler - config AS_WRUSS def_bool $(as-instr64,wrussq %rax$(comma)(%rbx)) help
Quoted 16 lines · Uros Bizjak
Current minimum required version of binutils is 2.30, which supports GFNI instruction mnemonics.
Remove check for assembler support of GFNI instructions and all relevant macros for conditional compilation.
No functional change intended.
Signed-off-by Uros Bizjak <[email protected]>Cc Herbert Xu <[email protected]>Cc "David S. Miller" <[email protected]>Cc Thomas Gleixner <[email protected]>Cc Ingo Molnar <[email protected]>Cc Borislav Petkov <[email protected]>Cc Dave Hansen <[email protected]>Cc "H. Peter Anvin" <[email protected]>
Quoted 8 lines
--- arch/x86/Kconfig.assembler | 5 ----- arch/x86/crypto/Kconfig | 2 +- arch/x86/crypto/aria-aesni-avx-asm_64.S | 10 ---------- arch/x86/crypto/aria-aesni-avx2-asm_64.S | 10 +--------- arch/x86/crypto/aria_aesni_avx2_glue.c | 4 +--- arch/x86/crypto/aria_aesni_avx_glue.c | 4 +--- 6 files changed, 4 insertions(+), 31 deletions(-)
Thanks,
Signature · 3 lines
Email: Herbert Xu <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
[tip: x86/cleanups] crypto: x86 - Remove CONFIG_AS_GFNI
In reply to Uros BizjakThe following commit has been merged into the x86/cleanups branch of tip:
The following commit has been merged into the x86/cleanups branch of tip:
Commit-ID: a35da57357221a989e59ced9407ba4f2d4d6d2d2 Gitweb: https://git.kernel.org/tip/a35da57357221a989e59ced9407ba4f2d4d6d2d2 Author: Uros Bizjak <[email protected]> AuthorDate: Tue, 19 Aug 2025 10:57:49 +02:00 Committer: Borislav Petkov (AMD) <[email protected]> CommitterDate: Wed, 20 Aug 2025 20:48:07 +02:00
crypto: x86 - Remove CONFIG_AS_GFNI
Current minimum required version of binutils is 2.30, which supports GFNI instruction mnemonics.
Remove check for assembler support of GFNI instructions and all relevant macros for conditional compilation.
No functional change intended.
--- arch/x86/Kconfig.assembler | 5 ----- arch/x86/crypto/Kconfig | 2 +- arch/x86/crypto/aria-aesni-avx-asm_64.S | 10 ---------- arch/x86/crypto/aria-aesni-avx2-asm_64.S | 10 +--------- arch/x86/crypto/aria_aesni_avx2_glue.c | 4 +--- arch/x86/crypto/aria_aesni_avx_glue.c | 4 +--- 6 files changed, 4 insertions(+), 31 deletions(-)
arch/x86/Kconfig.assembler +0 -5
@@ -6,11 +6,6 @@ config AS_AVX512 help Supported by binutils >= 2.25 and LLVM integrated assembler -config AS_GFNI - def_bool $(as-instr,vgf2p8mulb %xmm0$(comma)%xmm1$(comma)%xmm2) - help - Supported by binutils >= 2.30 and LLVM integrated assembler - config AS_VAES def_bool $(as-instr,vaesenc %ymm0$(comma)%ymm1$(comma)%ymm2) help
arch/x86/crypto/Kconfig +1 -1
@@ -319,7 +319,7 @@ config CRYPTO_ARIA_AESNI_AVX2_X86_64 config CRYPTO_ARIA_GFNI_AVX512_X86_64 tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)" - depends on 64BIT && AS_GFNI + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_ALGAPI select CRYPTO_ARIA
arch/x86/crypto/aria-aesni-avx-asm_64.S +0 -10
@@ -295,7 +295,6 @@ vpshufb t1, t0, t2; \ vpxor t2, x7, x7; -#ifdef CONFIG_AS_GFNI #define aria_sbox_8way_gfni(x0, x1, x2, x3, \ x4, x5, x6, x7, \ t0, t1, t2, t3, \
@@ -318,8 +317,6 @@ vgf2p8affineinvqb $0, t2, x3, x3; \ vgf2p8affineinvqb $0, t2, x7, x7 -#endif /* CONFIG_AS_GFNI */ - #define aria_sbox_8way(x0, x1, x2, x3, \ x4, x5, x6, x7, \ t0, t1, t2, t3, \
@@ -561,7 +558,6 @@ y4, y5, y6, y7, \ mem_tmp, 8); -#ifdef CONFIG_AS_GFNI #define aria_fe_gfni(x0, x1, x2, x3, \ x4, x5, x6, x7, \ y0, y1, y2, y3, \
@@ -719,8 +715,6 @@ y4, y5, y6, y7, \ mem_tmp, 8); -#endif /* CONFIG_AS_GFNI */ - /* NB: section is mergeable, all elements must be aligned 16-byte blocks */ .section .rodata.cst16, "aM", @progbits, 16 .align 16
@@ -772,7 +766,6 @@ .Ltf_hi__x2__and__fwd_aff: .octa 0x3F893781E95FE1576CDA64D2BA0CB204 -#ifdef CONFIG_AS_GFNI /* AES affine: */ #define tf_aff_const BV8(1, 1, 0, 0, 0, 1, 1, 0) .Ltf_aff_bitmatrix:
@@ -871,7 +864,6 @@ BV8(0, 0, 0, 0, 0, 1, 0, 0), BV8(0, 0, 0, 0, 0, 0, 1, 0), BV8(0, 0, 0, 0, 0, 0, 0, 1)) -#endif /* CONFIG_AS_GFNI */ /* 4-bit mask */ .section .rodata.cst4.L0f0f0f0f, "aM", @progbits, 4
@@ -1140,7 +1132,6 @@ SYM_TYPED_FUNC_START(aria_aesni_avx_ctr_crypt_16way) RET; SYM_FUNC_END(aria_aesni_avx_ctr_crypt_16way) -#ifdef CONFIG_AS_GFNI SYM_FUNC_START_LOCAL(__aria_aesni_avx_gfni_crypt_16way) /* input: * %r9: rk
@@ -1359,4 +1350,3 @@ SYM_TYPED_FUNC_START(aria_aesni_avx_gfni_ctr_crypt_16way) FRAME_END RET; SYM_FUNC_END(aria_aesni_avx_gfni_ctr_crypt_16way) -#endif /* CONFIG_AS_GFNI */
arch/x86/crypto/aria-aesni-avx2-asm_64.S +1 -9
@@ -302,7 +302,6 @@ vpbroadcastb ((round * 16) + idx + 4)(rk), t0; \ vpxor t0, x7, x7; -#ifdef CONFIG_AS_GFNI #define aria_sbox_8way_gfni(x0, x1, x2, x3, \ x4, x5, x6, x7, \ t0, t1, t2, t3, \
@@ -325,7 +324,6 @@ vgf2p8affineinvqb $0, t2, x3, x3; \ vgf2p8affineinvqb $0, t2, x7, x7 -#endif /* CONFIG_AS_GFNI */ #define aria_sbox_8way(x0, x1, x2, x3, \ x4, x5, x6, x7, \ t0, t1, t2, t3, \
@@ -598,7 +596,7 @@ aria_load_state_8way(y0, y1, y2, y3, \ y4, y5, y6, y7, \ mem_tmp, 8); -#ifdef CONFIG_AS_GFNI + #define aria_fe_gfni(x0, x1, x2, x3, \ x4, x5, x6, x7, \ y0, y1, y2, y3, \
@@ -752,7 +750,6 @@ aria_load_state_8way(y0, y1, y2, y3, \ y4, y5, y6, y7, \ mem_tmp, 8); -#endif /* CONFIG_AS_GFNI */ .section .rodata.cst32.shufb_16x16b, "aM", @progbits, 32 .align 32
@@ -806,7 +803,6 @@ .Ltf_hi__x2__and__fwd_aff: .octa 0x3F893781E95FE1576CDA64D2BA0CB204 -#ifdef CONFIG_AS_GFNI .section .rodata.cst8, "aM", @progbits, 8 .align 8 /* AES affine: */
@@ -868,8 +864,6 @@ BV8(0, 0, 0, 0, 0, 0, 1, 0), BV8(0, 0, 0, 0, 0, 0, 0, 1)) -#endif /* CONFIG_AS_GFNI */ - /* 4-bit mask */ .section .rodata.cst4.L0f0f0f0f, "aM", @progbits, 4 .align 4
@@ -1219,7 +1213,6 @@ SYM_TYPED_FUNC_START(aria_aesni_avx2_ctr_crypt_32way) RET; SYM_FUNC_END(aria_aesni_avx2_ctr_crypt_32way) -#ifdef CONFIG_AS_GFNI SYM_FUNC_START_LOCAL(__aria_aesni_avx2_gfni_crypt_32way) /* input: * %r9: rk
@@ -1438,4 +1431,3 @@ SYM_TYPED_FUNC_START(aria_aesni_avx2_gfni_ctr_crypt_32way) FRAME_END RET; SYM_FUNC_END(aria_aesni_avx2_gfni_ctr_crypt_32way) -#endif /* CONFIG_AS_GFNI */
arch/x86/crypto/aria_aesni_avx2_glue.c +1 -3
@@ -26,7 +26,6 @@ asmlinkage void aria_aesni_avx2_ctr_crypt_32way(const void *ctx, u8 *dst,const u8 *src, u8 *keystream, u8 *iv);EXPORT_SYMBOL_GPL (aria_aesni_avx2_ctr_crypt_32way); -#ifdef CONFIG_AS_GFNI asmlinkage void aria_aesni_avx2_gfni_encrypt_32way(const void *ctx, u8 *dst,const u8 *src);EXPORT_SYMBOL_GPL (aria_aesni_avx2_gfni_encrypt_32way);
@@ -37,7 +36,6 @@ asmlinkage void aria_aesni_avx2_gfni_ctr_crypt_32way(const void *ctx, u8 *dst,const u8 *src, u8 *keystream, u8 *iv);EXPORT_SYMBOL_GPL (aria_aesni_avx2_gfni_ctr_crypt_32way); -#endif /* CONFIG_AS_GFNI */ static struct aria_avx_ops aria_ops;
@@ -213,7 +211,7 @@ static int __init aria_avx2_init(void)return -ENODEV ; } -if (boot_cpu_has (X86_FEATURE_GFNI ) &&IS_ENABLED (CONFIG_AS_GFNI )) { +if (boot_cpu_has (X86_FEATURE_GFNI )) { aria_ops.aria_encrypt_16way = aria_aesni_avx_gfni_encrypt_16way; aria_ops.aria_decrypt_16way = aria_aesni_avx_gfni_decrypt_16way; aria_ops.aria_ctr_crypt_16way = aria_aesni_avx_gfni_ctr_crypt_16way;
arch/x86/crypto/aria_aesni_avx_glue.c +1 -3
@@ -26,7 +26,6 @@ asmlinkage void aria_aesni_avx_ctr_crypt_16way(const void *ctx, u8 *dst,const u8 *src, u8 *keystream, u8 *iv);EXPORT_SYMBOL_GPL (aria_aesni_avx_ctr_crypt_16way); -#ifdef CONFIG_AS_GFNI asmlinkage void aria_aesni_avx_gfni_encrypt_16way(const void *ctx, u8 *dst,const u8 *src);EXPORT_SYMBOL_GPL (aria_aesni_avx_gfni_encrypt_16way);
@@ -37,7 +36,6 @@ asmlinkage void aria_aesni_avx_gfni_ctr_crypt_16way(const void *ctx, u8 *dst,const u8 *src, u8 *keystream, u8 *iv);EXPORT_SYMBOL_GPL (aria_aesni_avx_gfni_ctr_crypt_16way); -#endif /* CONFIG_AS_GFNI */ static struct aria_avx_ops aria_ops;
@@ -199,7 +197,7 @@ static int __init aria_avx_init(void)return -ENODEV ; } -if (boot_cpu_has (X86_FEATURE_GFNI ) &&IS_ENABLED (CONFIG_AS_GFNI )) { +if (boot_cpu_has (X86_FEATURE_GFNI )) { aria_ops.aria_encrypt_16way = aria_aesni_avx_gfni_encrypt_16way; aria_ops.aria_decrypt_16way = aria_aesni_avx_gfni_decrypt_16way; aria_ops.aria_ctr_crypt_16way = aria_aesni_avx_gfni_ctr_crypt_16way;
Quoted 16 lines · Uros Bizjak
Current minimum required version of binutils is 2.30, which supports GFNI instruction mnemonics.
Remove check for assembler support of GFNI instructions and all relevant macros for conditional compilation.
No functional change intended.
Signed-off-by Uros Bizjak <[email protected]>Cc Herbert Xu <[email protected]>Cc "David S. Miller" <[email protected]>Cc Thomas Gleixner <[email protected]>Cc Ingo Molnar <[email protected]>Cc Borislav Petkov <[email protected]>Cc Dave Hansen <[email protected]>Cc "H. Peter Anvin" <[email protected]>
Quoted 8 lines
--- arch/x86/Kconfig.assembler | 5 ----- arch/x86/crypto/Kconfig | 2 +- arch/x86/crypto/aria-aesni-avx-asm_64.S | 10 ---------- arch/x86/crypto/aria-aesni-avx2-asm_64.S | 10 +--------- arch/x86/crypto/aria_aesni_avx2_glue.c | 4 +--- arch/x86/crypto/aria_aesni_avx_glue.c | 4 +--- 6 files changed, 4 insertions(+), 31 deletions(-)
For the whole series:
Please include a cover letter next time.
- Eric