From fd1799b0bf5efa46dd3e6dfbbf3955564807e508 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 7 Jul 2017 17:12:51 +0200 Subject: kernel: prevent cryptomgr from pulling in useless extra dependencies for tests that are not run Reduces kernel size after LZMA by about 5k on MIPS lede-commit: 044c316167e076479a344c59905e5b435b84a77f Signed-off-by: Felix Fietkau --- crypto/Kconfig | 13 ++++++------- crypto/algboss.c | 4 ++++ 2 files changed, 10 insertions(+), 7 deletions(-) --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -120,13 +120,13 @@ config CRYPTO_MANAGER cbc(aes). config CRYPTO_MANAGER2 - def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y) - select CRYPTO_AEAD2 - select CRYPTO_HASH2 - select CRYPTO_BLKCIPHER2 - select CRYPTO_AKCIPHER2 - select CRYPTO_KPP2 - select CRYPTO_ACOMP2 + def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y && !CRYPTO_MANAGER_DISABLE_TESTS) + select CRYPTO_AEAD2 if !CRYPTO_MANAGER_DISABLE_TESTS + select CRYPTO_HASH2 if !CRYPTO_MANAGER_DISABLE_TESTS + select CRYPTO_BLKCIPHER2 if !CRYPTO_MANAGER_DISABLE_TESTS + select CRYPTO_AKCIPHER2 if !CRYPTO_MANAGER_DISABLE_TESTS + select CRYPTO_KPP2 if !CRYPTO_MANAGER_DISABLE_TESTS + select CRYPTO_ACOMP2 if !CRYPTO_MANAGER_DISABLE_TESTS config CRYPTO_USER tristate "Userspace cryptographic algorithm configuration" @@ -136,8 +136,6 @@ config CRYPTO_USER Userspace configuration for cryptographic instantiations such as cbc(aes). -if CRYPTO_MANAGER2 - config CRYPTO_MANAGER_DISABLE_TESTS bool "Disable run-time self tests" default y @@ -145,6 +143,8 @@ config CRYPTO_MANAGER_DISABLE_TESTS Disable run-time self tests that normally take place at algorithm registration. +if CRYPTO_MANAGER2 + config CRYPTO_MANAGER_EXTRA_TESTS bool "Enable extra run-time crypto self tests" depends on DEBUG_KERNEL && !CRYPTO_MANAGER_DISABLE_TESTS --- a/crypto/algboss.c +++ b/crypto/algboss.c @@ -240,8 +240,12 @@ static int cryptomgr_schedule_test(struc type = alg->cra_flags; /* Do not test internal algorithms. */ +#ifdef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS + type |= CRYPTO_ALG_TESTED; +#else if (type & CRYPTO_ALG_INTERNAL) type |= CRYPTO_ALG_TESTED; +#endif param->type = type;