crypto: remove bare cipher from public API
Subsystems (10)
cover crypto: remove bare cipher from public API
Patch #2 puts the cipher API (which should not be used outside of the crypto API implementation) into an internal header file and module namespace
Patch #1 is a prerequisite for this, to avoid having to make the chelsio driver import the crypto internal namespace.
Ard Biesheuvel (2):
chcr_ktls: use AES library for single use cipher
crypto: remove cipher routines from public crypto API
Documentation/crypto/api-skcipher.rst | 4 +- arch/arm/crypto/aes-neonbs-glue.c | 3 + arch/s390/crypto/aes_s390.c | 2 + crypto/adiantum.c | 2 + crypto/ansi_cprng.c | 2 + crypto/cbc.c | 1 + crypto/ccm.c | 2 + crypto/cfb.c | 2 + crypto/cipher.c | 7 +- crypto/cmac.c | 2 + crypto/ctr.c | 2 + crypto/drbg.c | 2 + crypto/ecb.c | 1 + crypto/essiv.c | 2 + crypto/keywrap.c | 2 + crypto/ofb.c | 2 + crypto/pcbc.c | 2 + crypto/skcipher.c | 1 + crypto/testmgr.c | 3 + crypto/vmac.c | 2 + crypto/xcbc.c | 2 + crypto/xts.c | 2 + drivers/crypto/geode-aes.c | 2 + drivers/crypto/inside-secure/safexcel.c | 1 + drivers/crypto/inside-secure/safexcel_hash.c | 1 + drivers/crypto/vmx/aes.c | 1 + drivers/crypto/vmx/vmx.c | 1 + .../chelsio/inline_crypto/ch_ktls/chcr_ktls.c | 19 +- include/crypto/algapi.h | 39 ---- include/crypto/internal/cipher.h | 218 ++++++++++++++++++ include/crypto/internal/skcipher.h | 1 + include/linux/crypto.h | 163 ------------- 32 files changed, 277 insertions(+), 219 deletions(-) create mode 100644 include/crypto/internal/cipher.h
Signature · 1 line
2.17.1
PATCH 1/2 chcr_ktls: use AES library for single use cipher
Allocating a cipher via the crypto API only to free it again after using it to encrypt a single block is unnecessary in cases where the algorithm is known at compile time. So replace this pattern with a call to the AES library.
--- drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-)
drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c +7 -12
@@ -9,6 +9,7 @@#include <linux/ip.h> #include <net/ipv6.h> #include <linux/netdevice.h> +#include <crypto/aes.h> #include "chcr_ktls.h" static LIST_HEAD (uld_ctx_list);
@@ -30,7 +31,7 @@ static int chcr_ktls_save_keys(struct chcr_ktls_info *tx_info,unsigned char ghash_h[TLS_CIPHER_AES_GCM_256_TAG_SIZE ];struct tls12_crypto_info_aes_gcm_128 *info_128_gcm;struct ktls_key_ctx *kctx = &tx_info->key_ctx; -struct crypto_cipher *cipher; +struct crypto_aes_ctx aes_ctx;unsigned char *key, *salt;switch (crypto_info->cipher_type) {
@@ -91,18 +92,14 @@ static int chcr_ktls_save_keys(struct chcr_ktls_info *tx_info,/* Calculate the H = CIPH(K, 0 repeated 16 times). * It will go in key context */ - cipher =crypto_alloc_cipher ("aes" ,0 ,0 ); -if (IS_ERR (cipher)) { - ret = -ENOMEM ; - goto out; - } - ret =crypto_cipher_setkey (cipher, key, keylen); + ret =aes_expandkey (&aes_ctx, key, keylen);if (ret) - goto out1; + goto out;memset (ghash_h,0 , ghash_size); -crypto_cipher_encrypt_one (cipher, ghash_h, ghash_h); +aes_encrypt (&aes_ctx, ghash_h, ghash_h); +memzero_explicit (&aes_ctx,sizeof (aes_ctx));/* fill the Key context */ if (direction ==TLS_OFFLOAD_CTX_DIR_TX ) {
@@ -111,7 +108,7 @@ static int chcr_ktls_save_keys(struct chcr_ktls_info *tx_info, key_ctx_size >> 4); }else { ret = -EINVAL ; - goto out1; + goto out; }memcpy (kctx->salt, salt, tx_info->salt_size);
@@ -119,8 +116,6 @@ static int chcr_ktls_save_keys(struct chcr_ktls_info *tx_info,memcpy (kctx->key + keylen, ghash_h, ghash_size); tx_info->key_ctx_len = key_ctx_size; -out1: -crypto_free_cipher (cipher); out:return ret; }
Signature · 1 line
2.17.1
PATCH 2/2 crypto: remove cipher routines from public crypto API
In reply to Ard BiesheuvelThe cipher routines in the crypto API are mostly intended for templates implementing skcipher modes generically in software, and shouldn't be used outside of the crypto subsystem. So move the prototypes and all related definitions to a new header file under include/crypto/internal. Also, let's use the new module namespace feature to move the symbol exports into a new namespace CRYPTO_INTERNAL.
--- Documentation/crypto/api-skcipher.rst | 4 +- arch/arm/crypto/aes-neonbs-glue.c | 3 + arch/s390/crypto/aes_s390.c | 2 + crypto/adiantum.c | 2 + crypto/ansi_cprng.c | 2 + crypto/cbc.c | 1 + crypto/ccm.c | 2 + crypto/cfb.c | 2 + crypto/cipher.c | 7 +- crypto/cmac.c | 2 + crypto/ctr.c | 2 + crypto/drbg.c | 2 + crypto/ecb.c | 1 + crypto/essiv.c | 2 + crypto/keywrap.c | 2 + crypto/ofb.c | 2 + crypto/pcbc.c | 2 + crypto/skcipher.c | 1 + crypto/testmgr.c | 3 + crypto/vmac.c | 2 + crypto/xcbc.c | 2 + crypto/xts.c | 2 + drivers/crypto/geode-aes.c | 2 + drivers/crypto/inside-secure/safexcel.c | 1 + drivers/crypto/inside-secure/safexcel_hash.c | 1 + drivers/crypto/vmx/aes.c | 1 + drivers/crypto/vmx/vmx.c | 1 + include/crypto/algapi.h | 39 ---- include/crypto/internal/cipher.h | 218 ++++++++++++++++++++ include/crypto/internal/skcipher.h | 1 + include/linux/crypto.h | 163 --------------- 31 files changed, 270 insertions(+), 207 deletions(-)
Documentation/crypto/api-skcipher.rst +2 -2
@@ -28,8 +28,8 @@ Symmetric Key Cipher Request Handle Single Block Cipher API ----------------------- -.. kernel-doc:: include/linux/crypto.h +.. kernel-doc:: include/crypto/internal/cipher.h :doc: Single Block Cipher API -.. kernel-doc:: include/linux/crypto.h +.. kernel-doc:: include/crypto/internal/cipher.h :functions: crypto_alloc_cipher crypto_free_cipher crypto_has_cipher crypto_cipher_blocksize crypto_cipher_setkey crypto_cipher_encrypt_one crypto_cipher_decrypt_one
arch/arm/crypto/aes-neonbs-glue.c +3 -0
@@ -9,6 +9,7 @@#include <asm/simd.h> #include <crypto/aes.h> #include <crypto/ctr.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/simd.h> #include <crypto/internal/skcipher.h> #include <crypto/scatterwalk.h>
@@ -23,6 +24,8 @@ MODULE_ALIAS_CRYPTO("cbc(aes)");MODULE_ALIAS_CRYPTO ("ctr(aes)" );MODULE_ALIAS_CRYPTO ("xts(aes)" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL ); + asmlinkage void aesbs_convert_key(u8 out[], u32 const rk[], int rounds); asmlinkage void aesbs_ecb_encrypt(u8 out[], u8 const in[], u8 const rk[],
arch/s390/crypto/aes_s390.c +2 -0
@@ -21,6 +21,7 @@#include <crypto/algapi.h> #include <crypto/ghash.h> #include <crypto/internal/aead.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/skcipher.h> #include <crypto/scatterwalk.h> #include <linux/err.h>
@@ -1055,3 +1056,4 @@ MODULE_ALIAS_CRYPTO("aes-all");MODULE_DESCRIPTION ("Rijndael (AES) Cipher Algorithm" );MODULE_LICENSE ("GPL" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
crypto/adiantum.c +2 -0
@@ -32,6 +32,7 @@#include <crypto/b128ops.h> #include <crypto/chacha.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/hash.h> #include <crypto/internal/poly1305.h> #include <crypto/internal/skcipher.h>
@@ -616,3 +617,4 @@ MODULE_DESCRIPTION("Adiantum length-preserving encryption mode");MODULE_LICENSE ("GPL v2" );MODULE_AUTHOR ("Eric Biggers <[email protected]>" );MODULE_ALIAS_CRYPTO ("adiantum" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
crypto/ansi_cprng.c +2 -0
@@ -7,6 +7,7 @@* (C) Neil Horman <[email protected]> */ +#include <crypto/internal/cipher.h> #include <crypto/internal/rng.h> #include <linux/err.h> #include <linux/init.h>
@@ -470,3 +471,4 @@ subsys_initcall(prng_mod_init);module_exit (prng_mod_fini);MODULE_ALIAS_CRYPTO ("stdrng" );MODULE_ALIAS_CRYPTO ("ansi_cprng" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
crypto/cbc.c +1 -0
@@ -6,6 +6,7 @@*/ #include <crypto/algapi.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/skcipher.h> #include <linux/err.h> #include <linux/init.h>
crypto/ccm.c +2 -0
@@ -6,6 +6,7 @@*/ #include <crypto/internal/aead.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/hash.h> #include <crypto/internal/skcipher.h> #include <crypto/scatterwalk.h>
@@ -954,3 +955,4 @@ MODULE_ALIAS_CRYPTO("ccm_base");MODULE_ALIAS_CRYPTO ("rfc4309" );MODULE_ALIAS_CRYPTO ("ccm" );MODULE_ALIAS_CRYPTO ("cbcmac" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
crypto/cfb.c +2 -0
@@ -20,6 +20,7 @@*/ #include <crypto/algapi.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/skcipher.h> #include <linux/err.h> #include <linux/init.h>
@@ -250,3 +251,4 @@ module_exit(crypto_cfb_module_exit);MODULE_LICENSE ("GPL" );MODULE_DESCRIPTION ("CFB block cipher mode of operation" );MODULE_ALIAS_CRYPTO ("cfb" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
crypto/cipher.c +4 -3
@@ -9,6 +9,7 @@*/ #include <crypto/algapi.h> +#include <crypto/internal/cipher.h> #include <linux/kernel.h> #include <linux/crypto.h> #include <linux/errno.h>
@@ -53,7 +54,7 @@ int crypto_cipher_setkey(struct crypto_cipher *tfm,return cia->cia_setkey (crypto_cipher_tfm (tfm), key, keylen); } -EXPORT_SYMBOL_GPL (crypto_cipher_setkey); +EXPORT_SYMBOL_NS_GPL (crypto_cipher_setkey,CRYPTO_INTERNAL );static inline void cipher_crypt_one (struct crypto_cipher *tfm,u8 *dst,const u8 *src,bool enc)
@@ -81,11 +82,11 @@ void crypto_cipher_encrypt_one(struct crypto_cipher *tfm, {cipher_crypt_one (tfm, dst, src, true); } -EXPORT_SYMBOL_GPL (crypto_cipher_encrypt_one); +EXPORT_SYMBOL_NS_GPL (crypto_cipher_encrypt_one,CRYPTO_INTERNAL );void crypto_cipher_decrypt_one (struct crypto_cipher *tfm,u8 *dst,const u8 *src) {cipher_crypt_one (tfm, dst, src, false); } -EXPORT_SYMBOL_GPL (crypto_cipher_decrypt_one); +EXPORT_SYMBOL_NS_GPL (crypto_cipher_decrypt_one,CRYPTO_INTERNAL );
crypto/cmac.c +2 -0
@@ -11,6 +11,7 @@* Author: Kazunori Miyazawa <[email protected]> */ +#include <crypto/internal/cipher.h> #include <crypto/internal/hash.h> #include <linux/err.h> #include <linux/kernel.h>
@@ -313,3 +314,4 @@ module_exit(crypto_cmac_module_exit);MODULE_LICENSE ("GPL" );MODULE_DESCRIPTION ("CMAC keyed hash algorithm" );MODULE_ALIAS_CRYPTO ("cmac" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
crypto/ctr.c +2 -0
@@ -7,6 +7,7 @@#include <crypto/algapi.h> #include <crypto/ctr.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/skcipher.h> #include <linux/err.h> #include <linux/init.h>
@@ -358,3 +359,4 @@ MODULE_LICENSE("GPL");MODULE_DESCRIPTION ("CTR block cipher mode of operation" );MODULE_ALIAS_CRYPTO ("rfc3686" );MODULE_ALIAS_CRYPTO ("ctr" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
crypto/drbg.c +2 -0
@@ -98,6 +98,7 @@*/ #include <crypto/drbg.h> +#include <crypto/internal/cipher.h> #include <linux/kernel.h> /***************************************************************
@@ -2161,3 +2162,4 @@ MODULE_DESCRIPTION("NIST SP800-90A Deterministic Random Bit Generator (DRBG) "CRYPTO_DRBG_HMAC_STRING CRYPTO_DRBG_CTR_STRING);MODULE_ALIAS_CRYPTO ("stdrng" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
crypto/ecb.c +1 -0
@@ -6,6 +6,7 @@*/ #include <crypto/algapi.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/skcipher.h> #include <linux/err.h> #include <linux/init.h>
crypto/essiv.c +2 -0
@@ -30,6 +30,7 @@#include <crypto/authenc.h> #include <crypto/internal/aead.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/hash.h> #include <crypto/internal/skcipher.h> #include <crypto/scatterwalk.h>
@@ -643,3 +644,4 @@ module_exit(essiv_module_exit);MODULE_DESCRIPTION ("ESSIV skcipher/aead wrapper for block encryption" );MODULE_LICENSE ("GPL v2" );MODULE_ALIAS_CRYPTO ("essiv" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
crypto/keywrap.c +2 -0
@@ -85,6 +85,7 @@#include <linux/crypto.h> #include <linux/scatterlist.h> #include <crypto/scatterwalk.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/skcipher.h> struct crypto_kw_block {
@@ -316,3 +317,4 @@ MODULE_LICENSE("Dual BSD/GPL");MODULE_AUTHOR ("Stephan Mueller <[email protected]>" );MODULE_DESCRIPTION ("Key Wrapping (RFC3394 / NIST SP800-38F)" );MODULE_ALIAS_CRYPTO ("kw" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
crypto/ofb.c +2 -0
@@ -8,6 +8,7 @@*/ #include <crypto/algapi.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/skcipher.h> #include <linux/err.h> #include <linux/init.h>
@@ -102,3 +103,4 @@ module_exit(crypto_ofb_module_exit);MODULE_LICENSE ("GPL" );MODULE_DESCRIPTION ("OFB block cipher mode of operation" );MODULE_ALIAS_CRYPTO ("ofb" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
crypto/pcbc.c +2 -0
@@ -10,6 +10,7 @@*/ #include <crypto/algapi.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/skcipher.h> #include <linux/err.h> #include <linux/init.h>
@@ -191,3 +192,4 @@ module_exit(crypto_pcbc_module_exit);MODULE_LICENSE ("GPL" );MODULE_DESCRIPTION ("PCBC block cipher mode of operation" );MODULE_ALIAS_CRYPTO ("pcbc" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
crypto/skcipher.c +1 -0
@@ -10,6 +10,7 @@*/ #include <crypto/internal/aead.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/skcipher.h> #include <crypto/scatterwalk.h> #include <linux/bug.h>
crypto/testmgr.c +3 -0
@@ -33,10 +33,13 @@#include <crypto/akcipher.h> #include <crypto/kpp.h> #include <crypto/acompress.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/simd.h> #include "internal.h" +MODULE_IMPORT_NS (CRYPTO_INTERNAL ); +static bool notests;module_param (notests, bool,0644 );MODULE_PARM_DESC (notests,"disable crypto self-tests" );
crypto/vmac.c +2 -0
@@ -36,6 +36,7 @@#include <linux/scatterlist.h> #include <asm/byteorder.h> #include <crypto/scatterwalk.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/hash.h> /*
@@ -693,3 +694,4 @@ module_exit(vmac_module_exit);MODULE_LICENSE ("GPL" );MODULE_DESCRIPTION ("VMAC hash algorithm" );MODULE_ALIAS_CRYPTO ("vmac64" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
crypto/xcbc.c +2 -0
@@ -6,6 +6,7 @@* Kazunori Miyazawa <[email protected]> */ +#include <crypto/internal/cipher.h> #include <crypto/internal/hash.h> #include <linux/err.h> #include <linux/kernel.h>
@@ -272,3 +273,4 @@ module_exit(crypto_xcbc_module_exit);MODULE_LICENSE ("GPL" );MODULE_DESCRIPTION ("XCBC keyed hash algorithm" );MODULE_ALIAS_CRYPTO ("xcbc" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
crypto/xts.c +2 -0
@@ -7,6 +7,7 @@* Based on ecb.c * Copyright (c) 2006 Herbert Xu <[email protected]> */ +#include <crypto/internal/cipher.h> #include <crypto/internal/skcipher.h> #include <crypto/scatterwalk.h> #include <linux/err.h>
@@ -464,3 +465,4 @@ module_exit(xts_module_exit);MODULE_LICENSE ("GPL" );MODULE_DESCRIPTION ("XTS block cipher mode" );MODULE_ALIAS_CRYPTO ("xts" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
drivers/crypto/geode-aes.c +2 -0
@@ -10,6 +10,7 @@#include <linux/spinlock.h> #include <crypto/algapi.h> #include <crypto/aes.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/skcipher.h> #include <linux/io.h>
@@ -434,3 +435,4 @@ module_pci_driver(geode_aes_driver);MODULE_AUTHOR ("Advanced Micro Devices, Inc." );MODULE_DESCRIPTION ("Geode LX Hardware AES driver" );MODULE_LICENSE ("GPL" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
drivers/crypto/inside-secure/safexcel.c +1 -0
@@ -1999,3 +1999,4 @@ MODULE_AUTHOR("Ofer Heifetz <[email protected]>");MODULE_AUTHOR ("Igal Liberman <[email protected]>" );MODULE_DESCRIPTION ("Support for SafeXcel cryptographic engines: EIP97 & EIP197" );MODULE_LICENSE ("GPL v2" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
drivers/crypto/inside-secure/safexcel_hash.c +1 -0
@@ -12,6 +12,7 @@#include <crypto/sha3.h> #include <crypto/skcipher.h> #include <crypto/sm3.h> +#include <crypto/internal/cipher.h> #include <linux/device.h> #include <linux/dma-mapping.h> #include <linux/dmapool.h>
drivers/crypto/vmx/aes.c +1 -0
@@ -14,6 +14,7 @@#include <asm/simd.h> #include <asm/switch_to.h> #include <crypto/aes.h> +#include <crypto/internal/cipher.h> #include <crypto/internal/simd.h> #include "aesp8-ppc.h"
drivers/crypto/vmx/vmx.c +1 -0
@@ -78,3 +78,4 @@ MODULE_DESCRIPTION("IBM VMX cryptographic acceleration instructions " "support on Power 8");MODULE_LICENSE ("GPL" );MODULE_VERSION ("1.0.0" ); +MODULE_IMPORT_NS (CRYPTO_INTERNAL );
include/crypto/algapi.h +0 -39
@@ -189,45 +189,6 @@ static inline void *crypto_instance_ctx(struct crypto_instance *inst)return inst->__ctx; } -struct crypto_cipher_spawn { -struct crypto_spawn base; -}; - -static inline int crypto_grab_cipher (struct crypto_cipher_spawn *spawn, -struct crypto_instance *inst, -const char *name,u32 type,u32 mask) -{ - type &= ~CRYPTO_ALG_TYPE_MASK ; - type |=CRYPTO_ALG_TYPE_CIPHER ; - mask |=CRYPTO_ALG_TYPE_MASK ; -return crypto_grab_spawn (&spawn->base, inst, name, type, mask); -} - -static inline void crypto_drop_cipher (struct crypto_cipher_spawn *spawn) -{ -crypto_drop_spawn (&spawn->base); -} - -static inline struct crypto_alg *crypto_spawn_cipher_alg ( -struct crypto_cipher_spawn *spawn) -{ -return spawn->base.alg; -} - -static inline struct crypto_cipher *crypto_spawn_cipher ( -struct crypto_cipher_spawn *spawn) -{ -u32 type =CRYPTO_ALG_TYPE_CIPHER ; -u32 mask =CRYPTO_ALG_TYPE_MASK ; - -return __crypto_cipher_cast (crypto_spawn_tfm (&spawn->base, type, mask)); -} - -static inline struct cipher_alg *crypto_cipher_alg (struct crypto_cipher *tfm) -{ -return &crypto_cipher_tfm (tfm)->__crt_alg->cra_cipher; -} -static inline struct crypto_async_request *crypto_get_backlog (struct crypto_queue *queue) {
include/crypto/internal/cipher.h new file +218 -0
218 lines not on this page · raw message
include/crypto/internal/skcipher.h +1 -0
@@ -9,6 +9,7 @@#define _CRYPTO_INTERNAL_SKCIPHER_H#include <crypto/algapi.h> +#include <crypto/internal/cipher.h> #include <crypto/skcipher.h> #include <linux/list.h> #include <linux/types.h>
include/linux/crypto.h +0 -163
175 lines not on this page · raw message
Signature · 1 line
2.17.1
kernel test robot
build botRe: [PATCH 2/2] crypto: remove cipher routines from public crypto API
I love your patch! Yet something to improve:
Hi Ard,
I love your patch! Yet something to improve:
[auto build test ERROR on cryptodev/master]
[also build test ERROR on powerpc/next v5.10-rc7 next-20201210] [cannot apply to crypto/master]
[If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Ard-Biesheuvel/crypto-remove-bare-cipher-from-public-API/20201210-171541 base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master config: arm-corgi_defconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/3e8de6655dbe9ff7f28c1cb27ba0dc37cea3c3df
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Ard-Biesheuvel/crypto-remove-bare-cipher-from-public-API/20201210-171541 git checkout 3e8de6655dbe9ff7f28c1cb27ba0dc37cea3c3df
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
All errors (new ones prefixed by >>, old ones prefixed by <<):
>> ERROR: modpost: module skcipher uses symbol crypto_cipher_setkey from namespace CRYPTO_INTERNAL, but does not import it.
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org