diff mbox series

linux-next: manual merge of the mm tree with the crypto tree

Message ID 20220906202017.5093fd23@canb.auug.org.au (mailing list archive)
State Not Applicable
Delegated to: Herbert Xu
Headers show
Series linux-next: manual merge of the mm tree with the crypto tree | expand

Commit Message

Stephen Rothwell Sept. 6, 2022, 10:20 a.m. UTC
Hi all,

Today's linux-next merge of the mm tree got a conflict in:

  crypto/Kconfig

between commit:

  28a936ef44e1 ("crypto: Kconfig - move x86 entries to a submenu")
and several others :-(

from the crypto tree and commit:

  4a86344bcbc9 ("crypto: kmsan: disable accelerated configs under KMSAN")

from the mm tree.

I fixed it up (I used the former version and then added the following
merge fix patch) and can carry the fix as necessary. This is now fixed
as far as linux-next is concerned, but any non trivial conflicts should
be mentioned to your upstream maintainer when your tree is submitted for
merging.  You may also want to consider cooperating with the maintainer
of the conflicting tree to minimise any particularly complex conflicts.

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Tue, 6 Sep 2022 20:11:34 +1000
Subject: [PATCH] crypto: Kconfig: fix up for "crypto: kmsan: disable accelerated configs under KMSAN"

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 arch/x86/crypto/Kconfig | 29 +++++++++++++++++++++++++++++
 crypto/Kconfig          |  1 +
 2 files changed, 30 insertions(+)

Comments

Eric Biggers Sept. 6, 2022, 10:12 p.m. UTC | #1
On Tue, Sep 06, 2022 at 08:20:17PM +1000, Stephen Rothwell wrote:
> diff --git a/arch/x86/crypto/Kconfig b/arch/x86/crypto/Kconfig
> index 9bb0f7939c6b..856f5d8ca65f 100644
> --- a/arch/x86/crypto/Kconfig
> +++ b/arch/x86/crypto/Kconfig
> @@ -5,6 +5,7 @@ menu "Accelerated Cryptographic Algorithms for CPU (x86)"
>  config CRYPTO_CURVE25519_X86
>  	tristate "Public key crypto: Curve25519 (ADX)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN # avoid false positives from assembly
>  	select CRYPTO_LIB_CURVE25519_GENERIC
>  	select CRYPTO_ARCH_HAVE_LIB_CURVE25519
>  	help
> @@ -16,6 +17,7 @@ config CRYPTO_CURVE25519_X86
>  config CRYPTO_AES_NI_INTEL
>  	tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XTR, XTS, GCM (AES-NI)"
>  	depends on X86
> +	depends on !KMSAN # avoid false positives from assembly
>  	select CRYPTO_AEAD
>  	select CRYPTO_LIB_AES
>  	select CRYPTO_ALGAPI
> @@ -32,6 +34,7 @@ config CRYPTO_AES_NI_INTEL
>  config CRYPTO_BLOWFISH_X86_64
>  	tristate "Ciphers: Blowfish, modes: ECB, CBC"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN # avoid false positives from assembly
>  	select CRYPTO_SKCIPHER
>  	select CRYPTO_BLOWFISH_COMMON
>  	imply CRYPTO_CTR
> @@ -44,6 +47,7 @@ config CRYPTO_BLOWFISH_X86_64
>  config CRYPTO_CAMELLIA_X86_64
>  	tristate "Ciphers: Camellia with modes: ECB, CBC"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN # avoid false positives from assembly
>  	select CRYPTO_SKCIPHER
>  	imply CRYPTO_CTR
>  	help
> @@ -55,6 +59,7 @@ config CRYPTO_CAMELLIA_X86_64
>  config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
>  	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
>  	depends on X86 && 64BIT
> +	depends on !KMSAN # avoid false positives from assembly
>  	select CRYPTO_SKCIPHER
>  	select CRYPTO_CAMELLIA_X86_64
>  	select CRYPTO_SIMD

Are there any options in arch/x86/crypto/Kconfig that *don't* need a dependency
on !KMSAN?  If not, this could be done in a much simpler way.

- Eric
Alexander Potapenko Sept. 7, 2022, 9:18 a.m. UTC | #2
On Wed, Sep 7, 2022 at 12:12 AM Eric Biggers <ebiggers@kernel.org> wrote:
>
> On Tue, Sep 06, 2022 at 08:20:17PM +1000, Stephen Rothwell wrote:
> > diff --git a/arch/x86/crypto/Kconfig b/arch/x86/crypto/Kconfig
> > index 9bb0f7939c6b..856f5d8ca65f 100644
> > --- a/arch/x86/crypto/Kconfig
> > +++ b/arch/x86/crypto/Kconfig
> > @@ -5,6 +5,7 @@ menu "Accelerated Cryptographic Algorithms for CPU (x86)"
> >  config CRYPTO_CURVE25519_X86
> >       tristate "Public key crypto: Curve25519 (ADX)"
> >       depends on X86 && 64BIT
> > +     depends on !KMSAN # avoid false positives from assembly
> >       select CRYPTO_LIB_CURVE25519_GENERIC
> >       select CRYPTO_ARCH_HAVE_LIB_CURVE25519
> >       help
> > @@ -16,6 +17,7 @@ config CRYPTO_CURVE25519_X86
> >  config CRYPTO_AES_NI_INTEL
> >       tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XTR, XTS, GCM (AES-NI)"
> >       depends on X86
> > +     depends on !KMSAN # avoid false positives from assembly
> >       select CRYPTO_AEAD
> >       select CRYPTO_LIB_AES
> >       select CRYPTO_ALGAPI
> > @@ -32,6 +34,7 @@ config CRYPTO_AES_NI_INTEL
> >  config CRYPTO_BLOWFISH_X86_64
> >       tristate "Ciphers: Blowfish, modes: ECB, CBC"
> >       depends on X86 && 64BIT
> > +     depends on !KMSAN # avoid false positives from assembly
> >       select CRYPTO_SKCIPHER
> >       select CRYPTO_BLOWFISH_COMMON
> >       imply CRYPTO_CTR
> > @@ -44,6 +47,7 @@ config CRYPTO_BLOWFISH_X86_64
> >  config CRYPTO_CAMELLIA_X86_64
> >       tristate "Ciphers: Camellia with modes: ECB, CBC"
> >       depends on X86 && 64BIT
> > +     depends on !KMSAN # avoid false positives from assembly
> >       select CRYPTO_SKCIPHER
> >       imply CRYPTO_CTR
> >       help
> > @@ -55,6 +59,7 @@ config CRYPTO_CAMELLIA_X86_64
> >  config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
> >       tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
> >       depends on X86 && 64BIT
> > +     depends on !KMSAN # avoid false positives from assembly
> >       select CRYPTO_SKCIPHER
> >       select CRYPTO_CAMELLIA_X86_64
> >       select CRYPTO_SIMD
>
> Are there any options in arch/x86/crypto/Kconfig that *don't* need a dependency
> on !KMSAN?  If not, this could be done in a much simpler way.

Am I understanding right that arch/x86/crypto is supposed to contain
algorithms implemented in x86 assembly rather than plain C?
If so, we should definitely disable all of them under KMSAN to avoid
false positives. And, yes, in a simpler way :)

What's the best way to handle this? Send another patch series? Or
maybe just an update for "crypto: kmsan: disable accelerated configs
under KMSAN"?

> - Eric
Andrew Morton Sept. 7, 2022, 8:41 p.m. UTC | #3
On Wed, 7 Sep 2022 11:18:24 +0200 Alexander Potapenko <glider@google.com> wrote:

> What's the best way to handle this? Send another patch series? Or
> maybe just an update for "crypto: kmsan: disable accelerated configs
> under KMSAN"?

I'd prefer the minimal update, please.
Alexander Potapenko Sept. 12, 2022, 9:37 a.m. UTC | #4
On Wed, Sep 7, 2022 at 10:41 PM Andrew Morton <akpm@linux-foundation.org> wrote:
>
> On Wed, 7 Sep 2022 11:18:24 +0200 Alexander Potapenko <glider@google.com> wrote:
>
> > What's the best way to handle this? Send another patch series? Or
> > maybe just an update for "crypto: kmsan: disable accelerated configs
> > under KMSAN"?
>
> I'd prefer the minimal update, please.

As a heads-up, I mailed "x86: crypto: kmsan: revert !KMSAN
dependencies" and "crypto: x86: kmsan: disable accelerated configs in
KMSAN builds" last week. No rush though, guess you're busy with LPC
this week.
Andrew Morton Sept. 12, 2022, 6:59 p.m. UTC | #5
On Mon, 12 Sep 2022 11:37:56 +0200 Alexander Potapenko <glider@google.com> wrote:

> On Wed, Sep 7, 2022 at 10:41 PM Andrew Morton <akpm@linux-foundation.org> wrote:
> >
> > On Wed, 7 Sep 2022 11:18:24 +0200 Alexander Potapenko <glider@google.com> wrote:
> >
> > > What's the best way to handle this? Send another patch series? Or
> > > maybe just an update for "crypto: kmsan: disable accelerated configs
> > > under KMSAN"?
> >
> > I'd prefer the minimal update, please.
> 
> As a heads-up, I mailed "x86: crypto: kmsan: revert !KMSAN
> dependencies" and "crypto: x86: kmsan: disable accelerated configs in
> KMSAN builds" last week. No rush though, guess you're busy with LPC
> this week.

oop.  sorry, things starting with "x86: " and "crypto: " tend to hit my
not-for-akpm brainfilter.  I have them now.
diff mbox series

Patch

diff --git a/arch/x86/crypto/Kconfig b/arch/x86/crypto/Kconfig
index 9bb0f7939c6b..856f5d8ca65f 100644
--- a/arch/x86/crypto/Kconfig
+++ b/arch/x86/crypto/Kconfig
@@ -5,6 +5,7 @@  menu "Accelerated Cryptographic Algorithms for CPU (x86)"
 config CRYPTO_CURVE25519_X86
 	tristate "Public key crypto: Curve25519 (ADX)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_LIB_CURVE25519_GENERIC
 	select CRYPTO_ARCH_HAVE_LIB_CURVE25519
 	help
@@ -16,6 +17,7 @@  config CRYPTO_CURVE25519_X86
 config CRYPTO_AES_NI_INTEL
 	tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XTR, XTS, GCM (AES-NI)"
 	depends on X86
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_AEAD
 	select CRYPTO_LIB_AES
 	select CRYPTO_ALGAPI
@@ -32,6 +34,7 @@  config CRYPTO_AES_NI_INTEL
 config CRYPTO_BLOWFISH_X86_64
 	tristate "Ciphers: Blowfish, modes: ECB, CBC"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SKCIPHER
 	select CRYPTO_BLOWFISH_COMMON
 	imply CRYPTO_CTR
@@ -44,6 +47,7 @@  config CRYPTO_BLOWFISH_X86_64
 config CRYPTO_CAMELLIA_X86_64
 	tristate "Ciphers: Camellia with modes: ECB, CBC"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SKCIPHER
 	imply CRYPTO_CTR
 	help
@@ -55,6 +59,7 @@  config CRYPTO_CAMELLIA_X86_64
 config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
 	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SKCIPHER
 	select CRYPTO_CAMELLIA_X86_64
 	select CRYPTO_SIMD
@@ -69,6 +74,7 @@  config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
 config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
 	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
 	help
 	  Length-preserving ciphers: Camellia with ECB and CBC modes
@@ -80,6 +86,7 @@  config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
 config CRYPTO_CAST5_AVX_X86_64
 	tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SKCIPHER
 	select CRYPTO_CAST5
 	select CRYPTO_CAST_COMMON
@@ -97,6 +104,7 @@  config CRYPTO_CAST5_AVX_X86_64
 config CRYPTO_CAST6_AVX_X86_64
 	tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SKCIPHER
 	select CRYPTO_CAST6
 	select CRYPTO_CAST_COMMON
@@ -115,6 +123,7 @@  config CRYPTO_CAST6_AVX_X86_64
 config CRYPTO_DES3_EDE_X86_64
 	tristate "Ciphers: Triple DES EDE with modes: ECB, CBC"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SKCIPHER
 	select CRYPTO_LIB_DES
 	imply CRYPTO_CTR
@@ -129,6 +138,7 @@  config CRYPTO_DES3_EDE_X86_64
 config CRYPTO_SERPENT_SSE2_X86_64
 	tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SKCIPHER
 	select CRYPTO_SERPENT
 	select CRYPTO_SIMD
@@ -145,6 +155,7 @@  config CRYPTO_SERPENT_SSE2_X86_64
 config CRYPTO_SERPENT_SSE2_586
 	tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)"
 	depends on X86 && !64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SKCIPHER
 	select CRYPTO_SERPENT
 	select CRYPTO_SIMD
@@ -161,6 +172,7 @@  config CRYPTO_SERPENT_SSE2_586
 config CRYPTO_SERPENT_AVX_X86_64
 	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SKCIPHER
 	select CRYPTO_SERPENT
 	select CRYPTO_SIMD
@@ -178,6 +190,7 @@  config CRYPTO_SERPENT_AVX_X86_64
 config CRYPTO_SERPENT_AVX2_X86_64
 	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SERPENT_AVX_X86_64
 	help
 	  Length-preserving ciphers: Serpent cipher algorithm
@@ -245,6 +258,7 @@  config CRYPTO_TWOFISH_586
 config CRYPTO_TWOFISH_X86_64
 	tristate "Ciphers: Twofish"
 	depends on (X86 || UML_X86) && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_ALGAPI
 	select CRYPTO_TWOFISH_COMMON
 	imply CRYPTO_CTR
@@ -256,6 +270,7 @@  config CRYPTO_TWOFISH_X86_64
 config CRYPTO_TWOFISH_X86_64_3WAY
 	tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SKCIPHER
 	select CRYPTO_TWOFISH_COMMON
 	select CRYPTO_TWOFISH_X86_64
@@ -271,6 +286,7 @@  config CRYPTO_TWOFISH_X86_64_3WAY
 config CRYPTO_TWOFISH_AVX_X86_64
 	tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SKCIPHER
 	select CRYPTO_SIMD
 	select CRYPTO_TWOFISH_COMMON
@@ -289,6 +305,7 @@  config CRYPTO_TWOFISH_AVX_X86_64
 config CRYPTO_CHACHA20_X86_64
 	tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (SSSE3/AVX2/AVX-512VL)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SKCIPHER
 	select CRYPTO_LIB_CHACHA_GENERIC
 	select CRYPTO_ARCH_HAVE_LIB_CHACHA
@@ -304,6 +321,7 @@  config CRYPTO_CHACHA20_X86_64
 config CRYPTO_AEGIS128_AESNI_SSE2
 	tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE2)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_AEAD
 	select CRYPTO_SIMD
 	help
@@ -316,6 +334,7 @@  config CRYPTO_AEGIS128_AESNI_SSE2
 config CRYPTO_NHPOLY1305_SSE2
 	tristate "Hash functions: NHPoly1305 (SSE2)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_NHPOLY1305
 	help
 	  NHPoly1305 hash function for Adiantum
@@ -326,6 +345,7 @@  config CRYPTO_NHPOLY1305_SSE2
 config CRYPTO_NHPOLY1305_AVX2
 	tristate "Hash functions: NHPoly1305 (AVX2)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_NHPOLY1305
 	help
 	  NHPoly1305 hash function for Adiantum
@@ -336,6 +356,7 @@  config CRYPTO_NHPOLY1305_AVX2
 config CRYPTO_BLAKE2S_X86
 	bool "Hash functions: BLAKE2s (SSSE3/AVX-512)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_LIB_BLAKE2S_GENERIC
 	select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
 	help
@@ -358,6 +379,7 @@  config CRYPTO_POLYVAL_CLMUL_NI
 config CRYPTO_POLY1305_X86_64
 	tristate "Hash functions: Poly1305 (SSE2/AVX2)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_LIB_POLY1305_GENERIC
 	select CRYPTO_ARCH_HAVE_LIB_POLY1305
 	help
@@ -370,6 +392,7 @@  config CRYPTO_POLY1305_X86_64
 config CRYPTO_SHA1_SSSE3
 	tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SHA1
 	select CRYPTO_HASH
 	help
@@ -384,6 +407,7 @@  config CRYPTO_SHA1_SSSE3
 config CRYPTO_SHA256_SSSE3
 	tristate "Hash functions: SHA-224 and SHA-256 (SSSE3/AVX/AVX2/SHA-NI)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SHA256
 	select CRYPTO_HASH
 	help
@@ -398,6 +422,7 @@  config CRYPTO_SHA256_SSSE3
 config CRYPTO_SHA512_SSSE3
 	tristate "Hash functions: SHA-384 and SHA-512 (SSSE3/AVX/AVX2)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_SHA512
 	select CRYPTO_HASH
 	help
@@ -424,6 +449,7 @@  config CRYPTO_SM3_AVX_X86_64
 config CRYPTO_GHASH_CLMUL_NI_INTEL
 	tristate "Hash functions: GHASH (CLMUL-NI)"
 	depends on X86 && 64BIT
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_CRYPTD
 	help
 	  GCM GHASH hash function (NIST SP800-38D)
@@ -434,6 +460,7 @@  config CRYPTO_GHASH_CLMUL_NI_INTEL
 config CRYPTO_CRC32C_INTEL
 	tristate "CRC32c (SSE4.2/PCLMULQDQ)"
 	depends on X86
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_HASH
 	help
 	  CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
@@ -445,6 +472,7 @@  config CRYPTO_CRC32C_INTEL
 config CRYPTO_CRC32_PCLMUL
 	tristate "CRC32 (PCLMULQDQ)"
 	depends on X86
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_HASH
 	select CRC32
 	help
@@ -456,6 +484,7 @@  config CRYPTO_CRC32_PCLMUL
 config CRYPTO_CRCT10DIF_PCLMUL
 	tristate "CRCT10DIF (PCLMULQDQ)"
 	depends on X86 && 64BIT && CRC_T10DIF
+	depends on !KMSAN # avoid false positives from assembly
 	select CRYPTO_HASH
 	help
 	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
diff --git a/crypto/Kconfig b/crypto/Kconfig
index 40423a14f86f..1dfe0583f302 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -796,6 +796,7 @@  config CRYPTO_AEGIS128
 config CRYPTO_AEGIS128_SIMD
 	bool "AEGIS-128 (arm NEON, arm64 NEON)"
 	depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON)
+	depends on !KMSAN # avoid false positives from assembly
 	default y
 	help
 	  AEGIS-128 AEAD algorithm