All of lore.kernel.org
 help / color / mirror / Atom feed
* [chrome-os:chromeos-5.4 102/103] drivers/crypto/inside-secure/safexcel_cipher.c:303:12: warning: stack frame size of 1032 bytes in function 'safexcel_aead_setkey'
@ 2021-04-22  6:51 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-04-22  6:51 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 10598 bytes --]

tree:   https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-5.4
head:   886e9593388032acd06f2e53d5d80aee644c8879
commit: 3dbd09d30b96ba15e3d59a0fc7ef83d0e3752837 [102/103] UPSTREAM: security: allow using Clang's zero initialization for stack variables
config: mips-randconfig-r036-20210421 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f5446b769a7929806f72256fccd4826d66502e59)
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
        # install mips cross compiling tool for clang build
        # apt-get install binutils-mips-linux-gnu
        git remote add chrome-os https://chromium.googlesource.com/chromiumos/third_party/kernel
        git fetch --no-tags chrome-os chromeos-5.4
        git checkout 3dbd09d30b96ba15e3d59a0fc7ef83d0e3752837
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/crypto/inside-secure/safexcel_cipher.c:303:12: warning: stack frame size of 1032 bytes in function 'safexcel_aead_setkey' [-Wframe-larger-than=]
   static int safexcel_aead_setkey(struct crypto_aead *ctfm, const u8 *key,
              ^
   1 warning generated.


vim +/safexcel_aead_setkey +303 drivers/crypto/inside-secure/safexcel_cipher.c

1b44c5a60c137e Antoine Tenart     2017-05-24  302  
77cdd4efe57134 Pascal van Leeuwen 2019-07-05 @303  static int safexcel_aead_setkey(struct crypto_aead *ctfm, const u8 *key,
f6beaea304872b Antoine Tenart     2018-05-14  304  				unsigned int len)
f6beaea304872b Antoine Tenart     2018-05-14  305  {
f6beaea304872b Antoine Tenart     2018-05-14  306  	struct crypto_tfm *tfm = crypto_aead_tfm(ctfm);
f6beaea304872b Antoine Tenart     2018-05-14  307  	struct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);
f6beaea304872b Antoine Tenart     2018-05-14  308  	struct safexcel_ahash_export_state istate, ostate;
f6beaea304872b Antoine Tenart     2018-05-14  309  	struct safexcel_crypto_priv *priv = ctx->priv;
f6beaea304872b Antoine Tenart     2018-05-14  310  	struct crypto_authenc_keys keys;
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  311  	struct crypto_aes_ctx aes;
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  312  	int err = -EINVAL;
f6beaea304872b Antoine Tenart     2018-05-14  313  
f6beaea304872b Antoine Tenart     2018-05-14  314  	if (crypto_authenc_extractkeys(&keys, key, len) != 0)
f6beaea304872b Antoine Tenart     2018-05-14  315  		goto badkey;
f6beaea304872b Antoine Tenart     2018-05-14  316  
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  317  	if (ctx->mode == CONTEXT_CONTROL_CRYPTO_MODE_CTR_LOAD) {
f26882a3475eb7 Pascal van Leeuwen 2019-07-30  318  		/* Minimum keysize is minimum AES key size + nonce size */
f26882a3475eb7 Pascal van Leeuwen 2019-07-30  319  		if (keys.enckeylen < (AES_MIN_KEY_SIZE +
f26882a3475eb7 Pascal van Leeuwen 2019-07-30  320  				      CTR_RFC3686_NONCE_SIZE))
f6beaea304872b Antoine Tenart     2018-05-14  321  			goto badkey;
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  322  		/* last 4 bytes of key are the nonce! */
f26882a3475eb7 Pascal van Leeuwen 2019-07-30  323  		ctx->nonce = *(u32 *)(keys.enckey + keys.enckeylen -
f26882a3475eb7 Pascal van Leeuwen 2019-07-30  324  				      CTR_RFC3686_NONCE_SIZE);
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  325  		/* exclude the nonce here */
f26882a3475eb7 Pascal van Leeuwen 2019-07-30  326  		keys.enckeylen -= CONTEXT_CONTROL_CRYPTO_MODE_CTR_LOAD;
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  327  	}
f6beaea304872b Antoine Tenart     2018-05-14  328  
f6beaea304872b Antoine Tenart     2018-05-14  329  	/* Encryption key */
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  330  	switch (ctx->alg) {
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  331  	case SAFEXCEL_3DES:
21f5a15e0f26c7 Ard Biesheuvel     2019-08-15  332  		err = verify_aead_des3_key(ctfm, keys.enckey, keys.enckeylen);
77cdd4efe57134 Pascal van Leeuwen 2019-07-05  333  		if (unlikely(err))
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  334  			goto badkey_expflags;
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  335  		break;
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  336  	case SAFEXCEL_AES:
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  337  		err = aes_expandkey(&aes, keys.enckey, keys.enckeylen);
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  338  		if (unlikely(err))
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  339  			goto badkey;
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  340  		break;
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  341  	default:
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  342  		dev_err(priv->dev, "aead: unsupported cipher algorithm\n");
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  343  		goto badkey;
77cdd4efe57134 Pascal van Leeuwen 2019-07-05  344  	}
77cdd4efe57134 Pascal van Leeuwen 2019-07-05  345  
53c83e915ce8b2 Antoine Tenart     2018-06-28  346  	if (priv->flags & EIP197_TRC_CACHE && ctx->base.ctxr_dma &&
f6beaea304872b Antoine Tenart     2018-05-14  347  	    memcmp(ctx->key, keys.enckey, keys.enckeylen))
f6beaea304872b Antoine Tenart     2018-05-14  348  		ctx->base.needs_inv = true;
f6beaea304872b Antoine Tenart     2018-05-14  349  
f6beaea304872b Antoine Tenart     2018-05-14  350  	/* Auth key */
a7dea8c0ff9f25 Ofer Heifetz       2018-06-28  351  	switch (ctx->hash_alg) {
01ba061d0fd769 Antoine Tenart     2018-05-14  352  	case CONTEXT_CONTROL_CRYPTO_ALG_SHA1:
01ba061d0fd769 Antoine Tenart     2018-05-14  353  		if (safexcel_hmac_setkey("safexcel-sha1", keys.authkey,
01ba061d0fd769 Antoine Tenart     2018-05-14  354  					 keys.authkeylen, &istate, &ostate))
01ba061d0fd769 Antoine Tenart     2018-05-14  355  			goto badkey;
01ba061d0fd769 Antoine Tenart     2018-05-14  356  		break;
678b2878ac396f Antoine Tenart     2018-05-14  357  	case CONTEXT_CONTROL_CRYPTO_ALG_SHA224:
678b2878ac396f Antoine Tenart     2018-05-14  358  		if (safexcel_hmac_setkey("safexcel-sha224", keys.authkey,
678b2878ac396f Antoine Tenart     2018-05-14  359  					 keys.authkeylen, &istate, &ostate))
678b2878ac396f Antoine Tenart     2018-05-14  360  			goto badkey;
678b2878ac396f Antoine Tenart     2018-05-14  361  		break;
678b2878ac396f Antoine Tenart     2018-05-14  362  	case CONTEXT_CONTROL_CRYPTO_ALG_SHA256:
f6beaea304872b Antoine Tenart     2018-05-14  363  		if (safexcel_hmac_setkey("safexcel-sha256", keys.authkey,
f6beaea304872b Antoine Tenart     2018-05-14  364  					 keys.authkeylen, &istate, &ostate))
f6beaea304872b Antoine Tenart     2018-05-14  365  			goto badkey;
678b2878ac396f Antoine Tenart     2018-05-14  366  		break;
ea23cb533ce419 Antoine Tenart     2018-05-29  367  	case CONTEXT_CONTROL_CRYPTO_ALG_SHA384:
ea23cb533ce419 Antoine Tenart     2018-05-29  368  		if (safexcel_hmac_setkey("safexcel-sha384", keys.authkey,
ea23cb533ce419 Antoine Tenart     2018-05-29  369  					 keys.authkeylen, &istate, &ostate))
ea23cb533ce419 Antoine Tenart     2018-05-29  370  			goto badkey;
ea23cb533ce419 Antoine Tenart     2018-05-29  371  		break;
87eee125e7490c Antoine Tenart     2018-05-29  372  	case CONTEXT_CONTROL_CRYPTO_ALG_SHA512:
87eee125e7490c Antoine Tenart     2018-05-29  373  		if (safexcel_hmac_setkey("safexcel-sha512", keys.authkey,
87eee125e7490c Antoine Tenart     2018-05-29  374  					 keys.authkeylen, &istate, &ostate))
87eee125e7490c Antoine Tenart     2018-05-29  375  			goto badkey;
87eee125e7490c Antoine Tenart     2018-05-29  376  		break;
678b2878ac396f Antoine Tenart     2018-05-14  377  	default:
678b2878ac396f Antoine Tenart     2018-05-14  378  		dev_err(priv->dev, "aead: unsupported hash algorithm\n");
678b2878ac396f Antoine Tenart     2018-05-14  379  		goto badkey;
678b2878ac396f Antoine Tenart     2018-05-14  380  	}
f6beaea304872b Antoine Tenart     2018-05-14  381  
f6beaea304872b Antoine Tenart     2018-05-14  382  	crypto_aead_set_flags(ctfm, crypto_aead_get_flags(ctfm) &
f6beaea304872b Antoine Tenart     2018-05-14  383  				    CRYPTO_TFM_RES_MASK);
f6beaea304872b Antoine Tenart     2018-05-14  384  
53c83e915ce8b2 Antoine Tenart     2018-06-28  385  	if (priv->flags & EIP197_TRC_CACHE && ctx->base.ctxr_dma &&
f6beaea304872b Antoine Tenart     2018-05-14  386  	    (memcmp(ctx->ipad, istate.state, ctx->state_sz) ||
f6beaea304872b Antoine Tenart     2018-05-14  387  	     memcmp(ctx->opad, ostate.state, ctx->state_sz)))
f6beaea304872b Antoine Tenart     2018-05-14  388  		ctx->base.needs_inv = true;
f6beaea304872b Antoine Tenart     2018-05-14  389  
f6beaea304872b Antoine Tenart     2018-05-14  390  	/* Now copy the keys into the context */
f6beaea304872b Antoine Tenart     2018-05-14  391  	memcpy(ctx->key, keys.enckey, keys.enckeylen);
f6beaea304872b Antoine Tenart     2018-05-14  392  	ctx->key_len = keys.enckeylen;
f6beaea304872b Antoine Tenart     2018-05-14  393  
f6beaea304872b Antoine Tenart     2018-05-14  394  	memcpy(ctx->ipad, &istate.state, ctx->state_sz);
f6beaea304872b Antoine Tenart     2018-05-14  395  	memcpy(ctx->opad, &ostate.state, ctx->state_sz);
f6beaea304872b Antoine Tenart     2018-05-14  396  
f6beaea304872b Antoine Tenart     2018-05-14  397  	memzero_explicit(&keys, sizeof(keys));
f6beaea304872b Antoine Tenart     2018-05-14  398  	return 0;
f6beaea304872b Antoine Tenart     2018-05-14  399  
f6beaea304872b Antoine Tenart     2018-05-14  400  badkey:
f6beaea304872b Antoine Tenart     2018-05-14  401  	crypto_aead_set_flags(ctfm, CRYPTO_TFM_RES_BAD_KEY_LEN);
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  402  badkey_expflags:
f6beaea304872b Antoine Tenart     2018-05-14  403  	memzero_explicit(&keys, sizeof(keys));
0e17e3621a28a6 Pascal van Leeuwen 2019-07-05  404  	return err;
f6beaea304872b Antoine Tenart     2018-05-14  405  }
f6beaea304872b Antoine Tenart     2018-05-14  406  

:::::: The code at line 303 was first introduced by commit
:::::: 77cdd4efe571345e9c116e65f64a616969e0bc35 crypto: inside-secure - add support for authenc(hmac(sha1),cbc(des3_ede))

:::::: TO: Pascal van Leeuwen <pascalvanl@gmail.com>
:::::: CC: Herbert Xu <herbert@gondor.apana.org.au>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 27316 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-04-22  6:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-22  6:51 [chrome-os:chromeos-5.4 102/103] drivers/crypto/inside-secure/safexcel_cipher.c:303:12: warning: stack frame size of 1032 bytes in function 'safexcel_aead_setkey' kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.