tree: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master head: 98eca72fa04a9bbf28dba95efaec5aa95588fe23 commit: 64e26807bb93b4accaa395d98e118ab893cac074 [118/131] crypto: s390/aes - Use skcipher for fallback config: s390-allyesconfig (attached as .config) compiler: s390x-linux-gnu-gcc (Debian 5.3.1-8) 5.3.1 20160205 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 64e26807bb93b4accaa395d98e118ab893cac074 # save the attached .config to linux build tree make.cross ARCH=s390
All warnings (new ones prefixed by >>):
arch/s390/crypto/aes_s390.c: In function 'fallback_blk_dec':
>> arch/s390/crypto/aes_s390.c:271:1: warning: 'fallback_blk_dec' uses dynamic
>> stack allocation
}
^
arch/s390/crypto/aes_s390.c: In function 'ecb_aes_encrypt':
>> arch/s390/crypto/aes_s390.c:355:1: warning: 'ecb_aes_encrypt' uses dynamic
>> stack allocation
}
^
arch/s390/crypto/aes_s390.c: In function 'cbc_aes_encrypt':
>> arch/s390/crypto/aes_s390.c:496:1: warning: 'cbc_aes_encrypt' uses dynamic
>> stack allocation
}
^
arch/s390/crypto/aes_s390.c: In function 'xts_aes_decrypt':
>> arch/s390/crypto/aes_s390.c:703:1: warning: 'xts_aes_decrypt' uses dynamic
>> stack allocation
}
^
arch/s390/crypto/aes_s390.c: In function 'xts_aes_encrypt':
>> arch/s390/crypto/aes_s390.c:689:1: warning: 'xts_aes_encrypt' uses dynamic
>> stack allocation
}
^
vim +/fallback_blk_dec +271 arch/s390/crypto/aes_s390.c
64e26807 Herbert Xu 2016-06-29 265 skcipher_request_set_crypt(req,
src, dst, nbytes, desc->info);
b0c3e75d Sebastian Siewior 2007-12-01 266
64e26807 Herbert Xu 2016-06-29 267 ret =
crypto_skcipher_decrypt(req);
b0c3e75d Sebastian Siewior 2007-12-01 268
64e26807 Herbert Xu 2016-06-29 269 skcipher_request_zero(req);
b0c3e75d Sebastian Siewior 2007-12-01 270 return ret;
b0c3e75d Sebastian Siewior 2007-12-01 @271 }
b0c3e75d Sebastian Siewior 2007-12-01 272
b0c3e75d Sebastian Siewior 2007-12-01 273 static int fallback_blk_enc(struct
blkcipher_desc *desc,
b0c3e75d Sebastian Siewior 2007-12-01 274 struct scatterlist
*dst, struct scatterlist *src,
b0c3e75d Sebastian Siewior 2007-12-01 275 unsigned int nbytes)
b0c3e75d Sebastian Siewior 2007-12-01 276 {
b0c3e75d Sebastian Siewior 2007-12-01 277 unsigned int ret;
64e26807 Herbert Xu 2016-06-29 278 struct crypto_blkcipher *tfm =
desc->tfm;
64e26807 Herbert Xu 2016-06-29 279 struct s390_aes_ctx *sctx =
crypto_blkcipher_ctx(tfm);
64e26807 Herbert Xu 2016-06-29 280 SKCIPHER_REQUEST_ON_STACK(req,
sctx->fallback.blk);
b0c3e75d Sebastian Siewior 2007-12-01 281
64e26807 Herbert Xu 2016-06-29 282 skcipher_request_set_tfm(req,
sctx->fallback.blk);
64e26807 Herbert Xu 2016-06-29 283
skcipher_request_set_callback(req, desc->flags, NULL, NULL);
64e26807 Herbert Xu 2016-06-29 284 skcipher_request_set_crypt(req,
src, dst, nbytes, desc->info);
b0c3e75d Sebastian Siewior 2007-12-01 285
64e26807 Herbert Xu 2016-06-29 286 ret =
crypto_skcipher_encrypt(req);
b0c3e75d Sebastian Siewior 2007-12-01 287 return ret;
b0c3e75d Sebastian Siewior 2007-12-01 288 }
b0c3e75d Sebastian Siewior 2007-12-01 289
a9e62fad Herbert Xu 2006-08-21 290 static int ecb_aes_set_key(struct
crypto_tfm *tfm, const u8 *in_key,
a9e62fad Herbert Xu 2006-08-21 291 unsigned int
key_len)
a9e62fad Herbert Xu 2006-08-21 292 {
a9e62fad Herbert Xu 2006-08-21 293 struct s390_aes_ctx *sctx =
crypto_tfm_ctx(tfm);
b0c3e75d Sebastian Siewior 2007-12-01 294 int ret;
b0c3e75d Sebastian Siewior 2007-12-01 295
b0c3e75d Sebastian Siewior 2007-12-01 296 ret = need_fallback(key_len);
b0c3e75d Sebastian Siewior 2007-12-01 297 if (ret > 0) {
b0c3e75d Sebastian Siewior 2007-12-01 298 sctx->key_len = key_len;
b0c3e75d Sebastian Siewior 2007-12-01 299 return
setkey_fallback_blk(tfm, in_key, key_len);
b0c3e75d Sebastian Siewior 2007-12-01 300 }
a9e62fad Herbert Xu 2006-08-21 301
a9e62fad Herbert Xu 2006-08-21 302 switch (key_len) {
a9e62fad Herbert Xu 2006-08-21 303 case 16:
c7d4d259 Martin Schwidefsky 2016-03-17 304 sctx->enc =
CPACF_KM_AES_128_ENC;
c7d4d259 Martin Schwidefsky 2016-03-17 305 sctx->dec =
CPACF_KM_AES_128_DEC;
a9e62fad Herbert Xu 2006-08-21 306 break;
a9e62fad Herbert Xu 2006-08-21 307 case 24:
c7d4d259 Martin Schwidefsky 2016-03-17 308 sctx->enc =
CPACF_KM_AES_192_ENC;
c7d4d259 Martin Schwidefsky 2016-03-17 309 sctx->dec =
CPACF_KM_AES_192_DEC;
a9e62fad Herbert Xu 2006-08-21 310 break;
a9e62fad Herbert Xu 2006-08-21 311 case 32:
c7d4d259 Martin Schwidefsky 2016-03-17 312 sctx->enc =
CPACF_KM_AES_256_ENC;
c7d4d259 Martin Schwidefsky 2016-03-17 313 sctx->dec =
CPACF_KM_AES_256_DEC;
a9e62fad Herbert Xu 2006-08-21 314 break;
a9e62fad Herbert Xu 2006-08-21 315 }
a9e62fad Herbert Xu 2006-08-21 316
a9e62fad Herbert Xu 2006-08-21 317 return aes_set_key(tfm, in_key,
key_len);
a9e62fad Herbert Xu 2006-08-21 318 }
a9e62fad Herbert Xu 2006-08-21 319
a9e62fad Herbert Xu 2006-08-21 320 static int ecb_aes_crypt(struct
blkcipher_desc *desc, long func, void *param,
a9e62fad Herbert Xu 2006-08-21 321 struct
blkcipher_walk *walk)
a9e62fad Herbert Xu 2006-08-21 322 {
a9e62fad Herbert Xu 2006-08-21 323 int ret =
blkcipher_walk_virt(desc, walk);
a9e62fad Herbert Xu 2006-08-21 324 unsigned int nbytes;
a9e62fad Herbert Xu 2006-08-21 325
a9e62fad Herbert Xu 2006-08-21 326 while ((nbytes = walk->nbytes))
{
a9e62fad Herbert Xu 2006-08-21 327 /* only use complete
blocks */
a9e62fad Herbert Xu 2006-08-21 328 unsigned int n = nbytes
& ~(AES_BLOCK_SIZE - 1);
a9e62fad Herbert Xu 2006-08-21 329 u8 *out =
walk->dst.virt.addr;
a9e62fad Herbert Xu 2006-08-21 330 u8 *in =
walk->src.virt.addr;
a9e62fad Herbert Xu 2006-08-21 331
c7d4d259 Martin Schwidefsky 2016-03-17 332 ret = cpacf_km(func,
param, out, in, n);
36eb2caa Jan Glauber 2012-10-26 333 if (ret < 0 || ret != n)
36eb2caa Jan Glauber 2012-10-26 334 return -EIO;
a9e62fad Herbert Xu 2006-08-21 335
a9e62fad Herbert Xu 2006-08-21 336 nbytes &=
AES_BLOCK_SIZE - 1;
a9e62fad Herbert Xu 2006-08-21 337 ret =
blkcipher_walk_done(desc, walk, nbytes);
a9e62fad Herbert Xu 2006-08-21 338 }
a9e62fad Herbert Xu 2006-08-21 339
a9e62fad Herbert Xu 2006-08-21 340 return ret;
a9e62fad Herbert Xu 2006-08-21 341 }
a9e62fad Herbert Xu 2006-08-21 342
a9e62fad Herbert Xu 2006-08-21 343 static int ecb_aes_encrypt(struct
blkcipher_desc *desc,
a9e62fad Herbert Xu 2006-08-21 344 struct
scatterlist *dst, struct scatterlist *src,
a9e62fad Herbert Xu 2006-08-21 345 unsigned int
nbytes)
a9e62fad Herbert Xu 2006-08-21 346 {
a9e62fad Herbert Xu 2006-08-21 347 struct s390_aes_ctx *sctx =
crypto_blkcipher_ctx(desc->tfm);
a9e62fad Herbert Xu 2006-08-21 348 struct blkcipher_walk walk;
a9e62fad Herbert Xu 2006-08-21 349
b0c3e75d Sebastian Siewior 2007-12-01 350 if
(unlikely(need_fallback(sctx->key_len)))
b0c3e75d Sebastian Siewior 2007-12-01 351 return
fallback_blk_enc(desc, dst, src, nbytes);
b0c3e75d Sebastian Siewior 2007-12-01 352
a9e62fad Herbert Xu 2006-08-21 353 blkcipher_walk_init(&walk, dst,
src, nbytes);
a9e62fad Herbert Xu 2006-08-21 354 return ecb_aes_crypt(desc,
sctx->enc, sctx->key, &walk);
a9e62fad Herbert Xu 2006-08-21 @355 }
a9e62fad Herbert Xu 2006-08-21 356
a9e62fad Herbert Xu 2006-08-21 357 static int ecb_aes_decrypt(struct
blkcipher_desc *desc,
a9e62fad Herbert Xu 2006-08-21 358 struct
scatterlist *dst, struct scatterlist *src,
:::::: The code at line 271 was first introduced by commit
:::::: b0c3e75d857f3785a4b274e26b1c0b2327580dda [CRYPTO] aes_s390: Add fallback
driver
:::::: TO: Sebastian Siewior <[email protected]>
:::::: CC: Herbert Xu <[email protected]>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: Binary data
