CC: [email protected] In-Reply-To: <[email protected]> References: <[email protected]> TO: Richard van Schagen <[email protected]> TO: [email protected] TO: [email protected] TO: [email protected] TO: [email protected] CC: [email protected] CC: Richard van Schagen <[email protected]>
Hi Richard, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on herbert-cryptodev-2.6/master] [also build test WARNING on herbert-crypto-2.6/master robh/for-next v5.16-rc2 next-20211126] [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/Richard-van-Schagen/Enable-the-Mediatek-EIP-93-crypto-engine/20211027-171429 base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master :::::: branch date: 5 weeks ago :::::: commit date: 5 weeks ago config: powerpc-randconfig-m031-20211101 (https://download.01.org/0day-ci/archive/20211128/[email protected]/config) compiler: powerpc-linux-gcc (GCC) 11.2.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> New smatch warnings: drivers/crypto/mtk-eip93/eip93-aead.c:107 mtk_aead_cra_init() error: uninitialized symbol 'alg_base'. drivers/crypto/mtk-eip93/eip93-aead.c:175 mtk_aead_setkey() error: uninitialized symbol 'err'. Old smatch warnings: drivers/crypto/mtk-eip93/eip93-aead.c:209 mtk_aead_setkey() error: uninitialized symbol 'err'. vim +/alg_base +107 drivers/crypto/mtk-eip93/eip93-aead.c b4ea2578718d77 Richard van Schagen 2021-10-27 63 b4ea2578718d77 Richard van Schagen 2021-10-27 64 /* Crypto aead API functions */ b4ea2578718d77 Richard van Schagen 2021-10-27 65 static int mtk_aead_cra_init(struct crypto_tfm *tfm) b4ea2578718d77 Richard van Schagen 2021-10-27 66 { b4ea2578718d77 Richard van Schagen 2021-10-27 67 struct mtk_crypto_ctx *ctx = crypto_tfm_ctx(tfm); b4ea2578718d77 Richard van Schagen 2021-10-27 68 struct mtk_alg_template *tmpl = container_of(tfm->__crt_alg, b4ea2578718d77 Richard van Schagen 2021-10-27 69 struct mtk_alg_template, alg.aead.base); b4ea2578718d77 Richard van Schagen 2021-10-27 70 u32 flags = tmpl->flags; b4ea2578718d77 Richard van Schagen 2021-10-27 71 char *alg_base; b4ea2578718d77 Richard van Schagen 2021-10-27 72 b4ea2578718d77 Richard van Schagen 2021-10-27 73 memset(ctx, 0, sizeof(*ctx)); b4ea2578718d77 Richard van Schagen 2021-10-27 74 b4ea2578718d77 Richard van Schagen 2021-10-27 75 crypto_aead_set_reqsize(__crypto_aead_cast(tfm), b4ea2578718d77 Richard van Schagen 2021-10-27 76 sizeof(struct mtk_cipher_reqctx)); b4ea2578718d77 Richard van Schagen 2021-10-27 77 b4ea2578718d77 Richard van Schagen 2021-10-27 78 ctx->mtk = tmpl->mtk; b4ea2578718d77 Richard van Schagen 2021-10-27 79 ctx->type = tmpl->type; b4ea2578718d77 Richard van Schagen 2021-10-27 80 ctx->in_first = true; b4ea2578718d77 Richard van Schagen 2021-10-27 81 ctx->out_first = true; b4ea2578718d77 Richard van Schagen 2021-10-27 82 b4ea2578718d77 Richard van Schagen 2021-10-27 83 ctx->sa_in = kzalloc(sizeof(struct saRecord_s), GFP_KERNEL); b4ea2578718d77 Richard van Schagen 2021-10-27 84 if (!ctx->sa_in) b4ea2578718d77 Richard van Schagen 2021-10-27 85 return -ENOMEM; b4ea2578718d77 Richard van Schagen 2021-10-27 86 b4ea2578718d77 Richard van Schagen 2021-10-27 87 ctx->sa_base_in = dma_map_single(ctx->mtk->dev, ctx->sa_in, b4ea2578718d77 Richard van Schagen 2021-10-27 88 sizeof(struct saRecord_s), DMA_TO_DEVICE); b4ea2578718d77 Richard van Schagen 2021-10-27 89 b4ea2578718d77 Richard van Schagen 2021-10-27 90 ctx->sa_out = kzalloc(sizeof(struct saRecord_s), GFP_KERNEL); b4ea2578718d77 Richard van Schagen 2021-10-27 91 if (!ctx->sa_out) b4ea2578718d77 Richard van Schagen 2021-10-27 92 return -ENOMEM; b4ea2578718d77 Richard van Schagen 2021-10-27 93 b4ea2578718d77 Richard van Schagen 2021-10-27 94 ctx->sa_base_out = dma_map_single(ctx->mtk->dev, ctx->sa_out, b4ea2578718d77 Richard van Schagen 2021-10-27 95 sizeof(struct saRecord_s), DMA_TO_DEVICE); b4ea2578718d77 Richard van Schagen 2021-10-27 96 b4ea2578718d77 Richard van Schagen 2021-10-27 97 /* software workaround for now */ b4ea2578718d77 Richard van Schagen 2021-10-27 98 if (IS_HASH_MD5(flags)) b4ea2578718d77 Richard van Schagen 2021-10-27 99 alg_base = "md5"; b4ea2578718d77 Richard van Schagen 2021-10-27 100 if (IS_HASH_SHA1(flags)) b4ea2578718d77 Richard van Schagen 2021-10-27 101 alg_base = "sha1"; b4ea2578718d77 Richard van Schagen 2021-10-27 102 if (IS_HASH_SHA224(flags)) b4ea2578718d77 Richard van Schagen 2021-10-27 103 alg_base = "sha224"; b4ea2578718d77 Richard van Schagen 2021-10-27 104 if (IS_HASH_SHA256(flags)) b4ea2578718d77 Richard van Schagen 2021-10-27 105 alg_base = "sha256"; b4ea2578718d77 Richard van Schagen 2021-10-27 106 b4ea2578718d77 Richard van Schagen 2021-10-27 @107 ctx->shash = crypto_alloc_shash(alg_base, 0, CRYPTO_ALG_NEED_FALLBACK); b4ea2578718d77 Richard van Schagen 2021-10-27 108 b4ea2578718d77 Richard van Schagen 2021-10-27 109 if (IS_ERR(ctx->shash)) { b4ea2578718d77 Richard van Schagen 2021-10-27 110 dev_err(ctx->mtk->dev, "base driver %s could not be loaded.\n", b4ea2578718d77 Richard van Schagen 2021-10-27 111 alg_base); b4ea2578718d77 Richard van Schagen 2021-10-27 112 return PTR_ERR(ctx->shash); b4ea2578718d77 Richard van Schagen 2021-10-27 113 } b4ea2578718d77 Richard van Schagen 2021-10-27 114 b4ea2578718d77 Richard van Schagen 2021-10-27 115 return 0; b4ea2578718d77 Richard van Schagen 2021-10-27 116 } b4ea2578718d77 Richard van Schagen 2021-10-27 117 b4ea2578718d77 Richard van Schagen 2021-10-27 118 static void mtk_aead_cra_exit(struct crypto_tfm *tfm) b4ea2578718d77 Richard van Schagen 2021-10-27 119 { b4ea2578718d77 Richard van Schagen 2021-10-27 120 struct mtk_crypto_ctx *ctx = crypto_tfm_ctx(tfm); b4ea2578718d77 Richard van Schagen 2021-10-27 121 b4ea2578718d77 Richard van Schagen 2021-10-27 122 if (ctx->shash) b4ea2578718d77 Richard van Schagen 2021-10-27 123 crypto_free_shash(ctx->shash); b4ea2578718d77 Richard van Schagen 2021-10-27 124 b4ea2578718d77 Richard van Schagen 2021-10-27 125 dma_unmap_single(ctx->mtk->dev, ctx->sa_base_in, b4ea2578718d77 Richard van Schagen 2021-10-27 126 sizeof(struct saRecord_s), DMA_TO_DEVICE); b4ea2578718d77 Richard van Schagen 2021-10-27 127 dma_unmap_single(ctx->mtk->dev, ctx->sa_base_out, b4ea2578718d77 Richard van Schagen 2021-10-27 128 sizeof(struct saRecord_s), DMA_TO_DEVICE); b4ea2578718d77 Richard van Schagen 2021-10-27 129 kfree(ctx->sa_in); b4ea2578718d77 Richard van Schagen 2021-10-27 130 kfree(ctx->sa_out); b4ea2578718d77 Richard van Schagen 2021-10-27 131 } b4ea2578718d77 Richard van Schagen 2021-10-27 132 b4ea2578718d77 Richard van Schagen 2021-10-27 133 static int mtk_aead_setkey(struct crypto_aead *ctfm, const u8 *key, b4ea2578718d77 Richard van Schagen 2021-10-27 134 unsigned int len) b4ea2578718d77 Richard van Schagen 2021-10-27 135 { b4ea2578718d77 Richard van Schagen 2021-10-27 136 struct crypto_tfm *tfm = crypto_aead_tfm(ctfm); b4ea2578718d77 Richard van Schagen 2021-10-27 137 struct mtk_crypto_ctx *ctx = crypto_tfm_ctx(tfm); b4ea2578718d77 Richard van Schagen 2021-10-27 138 struct mtk_alg_template *tmpl = container_of(tfm->__crt_alg, b4ea2578718d77 Richard van Schagen 2021-10-27 139 struct mtk_alg_template, alg.skcipher.base); b4ea2578718d77 Richard van Schagen 2021-10-27 140 u32 flags = tmpl->flags; b4ea2578718d77 Richard van Schagen 2021-10-27 141 struct crypto_authenc_keys keys; b4ea2578718d77 Richard van Schagen 2021-10-27 142 struct crypto_aes_ctx aes; b4ea2578718d77 Richard van Schagen 2021-10-27 143 struct saRecord_s *saRecord = ctx->sa_out; b4ea2578718d77 Richard van Schagen 2021-10-27 144 int sa_size = sizeof(struct saRecord_s); b4ea2578718d77 Richard van Schagen 2021-10-27 145 int err; b4ea2578718d77 Richard van Schagen 2021-10-27 146 u32 nonce = 0; b4ea2578718d77 Richard van Schagen 2021-10-27 147 b4ea2578718d77 Richard van Schagen 2021-10-27 148 if (crypto_authenc_extractkeys(&keys, key, len)) b4ea2578718d77 Richard van Schagen 2021-10-27 149 return -EINVAL; b4ea2578718d77 Richard van Schagen 2021-10-27 150 b4ea2578718d77 Richard van Schagen 2021-10-27 151 if (IS_RFC3686(flags)) { b4ea2578718d77 Richard van Schagen 2021-10-27 152 if (keys.enckeylen < CTR_RFC3686_NONCE_SIZE) b4ea2578718d77 Richard van Schagen 2021-10-27 153 goto badkey; b4ea2578718d77 Richard van Schagen 2021-10-27 154 b4ea2578718d77 Richard van Schagen 2021-10-27 155 keys.enckeylen -= CTR_RFC3686_NONCE_SIZE; b4ea2578718d77 Richard van Schagen 2021-10-27 156 memcpy(&nonce, keys.enckey + keys.enckeylen, b4ea2578718d77 Richard van Schagen 2021-10-27 157 CTR_RFC3686_NONCE_SIZE); b4ea2578718d77 Richard van Schagen 2021-10-27 158 } b4ea2578718d77 Richard van Schagen 2021-10-27 159 b4ea2578718d77 Richard van Schagen 2021-10-27 160 switch ((flags & MTK_ALG_MASK)) { b4ea2578718d77 Richard van Schagen 2021-10-27 161 #ifdef CONFIG_CRYPTO_DEV_EIP93_DES b4ea2578718d77 Richard van Schagen 2021-10-27 162 case MTK_ALG_DES: b4ea2578718d77 Richard van Schagen 2021-10-27 163 err = verify_aead_des_key(ctfm, keys.enckey, keys.enckeylen); b4ea2578718d77 Richard van Schagen 2021-10-27 164 break; b4ea2578718d77 Richard van Schagen 2021-10-27 165 case MTK_ALG_3DES: b4ea2578718d77 Richard van Schagen 2021-10-27 166 if (keys.enckeylen != DES3_EDE_KEY_SIZE) b4ea2578718d77 Richard van Schagen 2021-10-27 167 return -EINVAL; b4ea2578718d77 Richard van Schagen 2021-10-27 168 b4ea2578718d77 Richard van Schagen 2021-10-27 169 err = verify_aead_des3_key(ctfm, keys.enckey, keys.enckeylen); b4ea2578718d77 Richard van Schagen 2021-10-27 170 break; b4ea2578718d77 Richard van Schagen 2021-10-27 171 #endif b4ea2578718d77 Richard van Schagen 2021-10-27 172 case MTK_ALG_AES: b4ea2578718d77 Richard van Schagen 2021-10-27 173 err = aes_expandkey(&aes, keys.enckey, keys.enckeylen); b4ea2578718d77 Richard van Schagen 2021-10-27 174 } b4ea2578718d77 Richard van Schagen 2021-10-27 @175 if (err) b4ea2578718d77 Richard van Schagen 2021-10-27 176 goto badkey; b4ea2578718d77 Richard van Schagen 2021-10-27 177 b4ea2578718d77 Richard van Schagen 2021-10-27 178 ctx->blksize = crypto_aead_blocksize(ctfm); b4ea2578718d77 Richard van Schagen 2021-10-27 179 dma_unmap_single(ctx->mtk->dev, ctx->sa_base_in, sa_size, b4ea2578718d77 Richard van Schagen 2021-10-27 180 DMA_TO_DEVICE); b4ea2578718d77 Richard van Schagen 2021-10-27 181 b4ea2578718d77 Richard van Schagen 2021-10-27 182 dma_unmap_single(ctx->mtk->dev, ctx->sa_base_out, sa_size, b4ea2578718d77 Richard van Schagen 2021-10-27 183 DMA_TO_DEVICE); b4ea2578718d77 Richard van Schagen 2021-10-27 184 /* Encryption key */ b4ea2578718d77 Richard van Schagen 2021-10-27 185 mtk_set_saRecord(saRecord, keys.enckeylen, flags); b4ea2578718d77 Richard van Schagen 2021-10-27 186 saRecord->saCmd0.bits.opCode = 1; b4ea2578718d77 Richard van Schagen 2021-10-27 187 saRecord->saCmd0.bits.digestLength = ctx->authsize >> 2; b4ea2578718d77 Richard van Schagen 2021-10-27 188 b4ea2578718d77 Richard van Schagen 2021-10-27 189 memcpy(saRecord->saKey, keys.enckey, keys.enckeylen); b4ea2578718d77 Richard van Schagen 2021-10-27 190 ctx->saNonce = nonce; b4ea2578718d77 Richard van Schagen 2021-10-27 191 saRecord->saNonce = nonce; b4ea2578718d77 Richard van Schagen 2021-10-27 192 b4ea2578718d77 Richard van Schagen 2021-10-27 193 /* authentication key */ b4ea2578718d77 Richard van Schagen 2021-10-27 194 err = mtk_authenc_setkey(ctx->shash, saRecord, keys.authkey, b4ea2578718d77 Richard van Schagen 2021-10-27 195 keys.authkeylen); b4ea2578718d77 Richard van Schagen 2021-10-27 196 b4ea2578718d77 Richard van Schagen 2021-10-27 197 saRecord->saCmd0.bits.direction = 0; b4ea2578718d77 Richard van Schagen 2021-10-27 198 memcpy(ctx->sa_in, saRecord, sa_size); b4ea2578718d77 Richard van Schagen 2021-10-27 199 ctx->sa_in->saCmd0.bits.direction = 1; b4ea2578718d77 Richard van Schagen 2021-10-27 200 ctx->sa_in->saCmd1.bits.copyDigest = 0; b4ea2578718d77 Richard van Schagen 2021-10-27 201 b4ea2578718d77 Richard van Schagen 2021-10-27 202 ctx->sa_base_out = dma_map_single(ctx->mtk->dev, ctx->sa_out, sa_size, b4ea2578718d77 Richard van Schagen 2021-10-27 203 DMA_TO_DEVICE); b4ea2578718d77 Richard van Schagen 2021-10-27 204 ctx->sa_base_in = dma_map_single(ctx->mtk->dev, ctx->sa_in, sa_size, b4ea2578718d77 Richard van Schagen 2021-10-27 205 DMA_TO_DEVICE); b4ea2578718d77 Richard van Schagen 2021-10-27 206 ctx->in_first = true; b4ea2578718d77 Richard van Schagen 2021-10-27 207 ctx->out_first = true; b4ea2578718d77 Richard van Schagen 2021-10-27 208 badkey: b4ea2578718d77 Richard van Schagen 2021-10-27 209 return err; b4ea2578718d77 Richard van Schagen 2021-10-27 210 } b4ea2578718d77 Richard van Schagen 2021-10-27 211 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
