tree: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master head: a43a34845a156c9e1dae00e33595a508d53e0365 commit: 218d1cc1860c45b77f6814b44f6f0ffb9e40a82f [22/38] crypto: engine - Permit to enqueue all async requests config: x86_64-randconfig-s2-02160419 (attached as .config) compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026 reproduce: git checkout 218d1cc1860c45b77f6814b44f6f0ffb9e40a82f # save the attached .config to linux build tree make ARCH=x86_64
Note: the cryptodev/master HEAD a43a34845a156c9e1dae00e33595a508d53e0365 builds
fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
drivers/crypto/virtio/virtio_crypto_algs.c: In function
'virtio_crypto_ablkcipher_encrypt':
>> drivers/crypto/virtio/virtio_crypto_algs.c:494:9: error: implicit
>> declaration of function 'crypto_transfer_cipher_request_to_engine'
>> [-Werror=implicit-function-declaration]
return crypto_transfer_cipher_request_to_engine(data_vq->engine, req);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/virtio/virtio_crypto_algs.c: In function
'virtio_crypto_ablkcipher_finalize_req':
>> drivers/crypto/virtio/virtio_crypto_algs.c:564:2: error: implicit
>> declaration of function 'crypto_finalize_cipher_request'
>> [-Werror=implicit-function-declaration]
crypto_finalize_cipher_request(vc_sym_req->base.dataq->engine,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/crypto_transfer_cipher_request_to_engine +494
drivers/crypto/virtio/virtio_crypto_algs.c
dbaf0624 Gonglei 2016-12-15 476
dbaf0624 Gonglei 2016-12-15 477 static int
virtio_crypto_ablkcipher_encrypt(struct ablkcipher_request *req)
dbaf0624 Gonglei 2016-12-15 478 {
dbaf0624 Gonglei 2016-12-15 479 struct crypto_ablkcipher *atfm
= crypto_ablkcipher_reqtfm(req);
dbaf0624 Gonglei 2016-12-15 480 struct
virtio_crypto_ablkcipher_ctx *ctx = crypto_ablkcipher_ctx(atfm);
d31e7123 Zeng, Xin 2017-06-23 481 struct
virtio_crypto_sym_request *vc_sym_req =
d31e7123 Zeng, Xin 2017-06-23 482
ablkcipher_request_ctx(req);
d31e7123 Zeng, Xin 2017-06-23 483 struct virtio_crypto_request
*vc_req = &vc_sym_req->base;
dbaf0624 Gonglei 2016-12-15 484 struct virtio_crypto *vcrypto =
ctx->vcrypto;
dbaf0624 Gonglei 2016-12-15 485 /* Use the first data virtqueue
as default */
dbaf0624 Gonglei 2016-12-15 486 struct data_queue *data_vq =
&vcrypto->data_vq[0];
dbaf0624 Gonglei 2016-12-15 487
d79b5d0b Gonglei \(Arei\ 2016-12-27 488) vc_req->dataq = data_vq;
d31e7123 Zeng, Xin 2017-06-23 489 vc_req->alg_cb =
virtio_crypto_dataq_sym_callback;
d31e7123 Zeng, Xin 2017-06-23 490 vc_sym_req->ablkcipher_ctx =
ctx;
d31e7123 Zeng, Xin 2017-06-23 491 vc_sym_req->ablkcipher_req =
req;
d31e7123 Zeng, Xin 2017-06-23 492 vc_sym_req->encrypt = true;
dbaf0624 Gonglei 2016-12-15 493
d79b5d0b Gonglei \(Arei\ 2016-12-27 @494) return
crypto_transfer_cipher_request_to_engine(data_vq->engine, req);
dbaf0624 Gonglei 2016-12-15 495 }
dbaf0624 Gonglei 2016-12-15 496
dbaf0624 Gonglei 2016-12-15 497 static int
virtio_crypto_ablkcipher_decrypt(struct ablkcipher_request *req)
dbaf0624 Gonglei 2016-12-15 498 {
dbaf0624 Gonglei 2016-12-15 499 struct crypto_ablkcipher *atfm
= crypto_ablkcipher_reqtfm(req);
dbaf0624 Gonglei 2016-12-15 500 struct
virtio_crypto_ablkcipher_ctx *ctx = crypto_ablkcipher_ctx(atfm);
d31e7123 Zeng, Xin 2017-06-23 501 struct
virtio_crypto_sym_request *vc_sym_req =
d31e7123 Zeng, Xin 2017-06-23 502
ablkcipher_request_ctx(req);
d31e7123 Zeng, Xin 2017-06-23 503 struct virtio_crypto_request
*vc_req = &vc_sym_req->base;
dbaf0624 Gonglei 2016-12-15 504 struct virtio_crypto *vcrypto =
ctx->vcrypto;
dbaf0624 Gonglei 2016-12-15 505 /* Use the first data virtqueue
as default */
dbaf0624 Gonglei 2016-12-15 506 struct data_queue *data_vq =
&vcrypto->data_vq[0];
dbaf0624 Gonglei 2016-12-15 507
d79b5d0b Gonglei \(Arei\ 2016-12-27 508) vc_req->dataq = data_vq;
d31e7123 Zeng, Xin 2017-06-23 509 vc_req->alg_cb =
virtio_crypto_dataq_sym_callback;
d31e7123 Zeng, Xin 2017-06-23 510 vc_sym_req->ablkcipher_ctx =
ctx;
d31e7123 Zeng, Xin 2017-06-23 511 vc_sym_req->ablkcipher_req =
req;
d31e7123 Zeng, Xin 2017-06-23 512 vc_sym_req->encrypt = false;
dbaf0624 Gonglei 2016-12-15 513
d79b5d0b Gonglei \(Arei\ 2016-12-27 514) return
crypto_transfer_cipher_request_to_engine(data_vq->engine, req);
dbaf0624 Gonglei 2016-12-15 515 }
dbaf0624 Gonglei 2016-12-15 516
dbaf0624 Gonglei 2016-12-15 517 static int
virtio_crypto_ablkcipher_init(struct crypto_tfm *tfm)
dbaf0624 Gonglei 2016-12-15 518 {
dbaf0624 Gonglei 2016-12-15 519 struct
virtio_crypto_ablkcipher_ctx *ctx = crypto_tfm_ctx(tfm);
dbaf0624 Gonglei 2016-12-15 520
d31e7123 Zeng, Xin 2017-06-23 521 tfm->crt_ablkcipher.reqsize =
sizeof(struct virtio_crypto_sym_request);
dbaf0624 Gonglei 2016-12-15 522 ctx->tfm = tfm;
dbaf0624 Gonglei 2016-12-15 523
dbaf0624 Gonglei 2016-12-15 524 return 0;
dbaf0624 Gonglei 2016-12-15 525 }
dbaf0624 Gonglei 2016-12-15 526
dbaf0624 Gonglei 2016-12-15 527 static void
virtio_crypto_ablkcipher_exit(struct crypto_tfm *tfm)
dbaf0624 Gonglei 2016-12-15 528 {
dbaf0624 Gonglei 2016-12-15 529 struct
virtio_crypto_ablkcipher_ctx *ctx = crypto_tfm_ctx(tfm);
dbaf0624 Gonglei 2016-12-15 530
dbaf0624 Gonglei 2016-12-15 531 if (!ctx->vcrypto)
dbaf0624 Gonglei 2016-12-15 532 return;
dbaf0624 Gonglei 2016-12-15 533
dbaf0624 Gonglei 2016-12-15 534
virtio_crypto_alg_ablkcipher_close_session(ctx, 1);
dbaf0624 Gonglei 2016-12-15 535
virtio_crypto_alg_ablkcipher_close_session(ctx, 0);
dbaf0624 Gonglei 2016-12-15 536
virtcrypto_dev_put(ctx->vcrypto);
dbaf0624 Gonglei 2016-12-15 537 ctx->vcrypto = NULL;
dbaf0624 Gonglei 2016-12-15 538 }
dbaf0624 Gonglei 2016-12-15 539
d79b5d0b Gonglei \(Arei\ 2016-12-27 540) int
virtio_crypto_ablkcipher_crypt_req(
d79b5d0b Gonglei \(Arei\ 2016-12-27 541) struct crypto_engine *engine,
d79b5d0b Gonglei \(Arei\ 2016-12-27 542) struct ablkcipher_request *req)
d79b5d0b Gonglei \(Arei\ 2016-12-27 543) {
d31e7123 Zeng, Xin 2017-06-23 544 struct
virtio_crypto_sym_request *vc_sym_req =
d31e7123 Zeng, Xin 2017-06-23 545
ablkcipher_request_ctx(req);
d31e7123 Zeng, Xin 2017-06-23 546 struct virtio_crypto_request
*vc_req = &vc_sym_req->base;
d79b5d0b Gonglei \(Arei\ 2016-12-27 547) struct data_queue *data_vq =
vc_req->dataq;
d79b5d0b Gonglei \(Arei\ 2016-12-27 548) int ret;
d79b5d0b Gonglei \(Arei\ 2016-12-27 549)
d31e7123 Zeng, Xin 2017-06-23 550 ret =
__virtio_crypto_ablkcipher_do_req(vc_sym_req, req, data_vq);
d79b5d0b Gonglei \(Arei\ 2016-12-27 551) if (ret < 0)
d79b5d0b Gonglei \(Arei\ 2016-12-27 552) return ret;
d79b5d0b Gonglei \(Arei\ 2016-12-27 553)
d79b5d0b Gonglei \(Arei\ 2016-12-27 554) virtqueue_kick(data_vq->vq);
d79b5d0b Gonglei \(Arei\ 2016-12-27 555)
d79b5d0b Gonglei \(Arei\ 2016-12-27 556) return 0;
d79b5d0b Gonglei \(Arei\ 2016-12-27 557) }
d79b5d0b Gonglei \(Arei\ 2016-12-27 558)
d31e7123 Zeng, Xin 2017-06-23 559 static void
virtio_crypto_ablkcipher_finalize_req(
d31e7123 Zeng, Xin 2017-06-23 560 struct
virtio_crypto_sym_request *vc_sym_req,
d79b5d0b Gonglei \(Arei\ 2016-12-27 561) struct ablkcipher_request *req,
d79b5d0b Gonglei \(Arei\ 2016-12-27 562) int err)
d79b5d0b Gonglei \(Arei\ 2016-12-27 563) {
d31e7123 Zeng, Xin 2017-06-23 @564
crypto_finalize_cipher_request(vc_sym_req->base.dataq->engine,
d31e7123 Zeng, Xin 2017-06-23 565
req, err);
d31e7123 Zeng, Xin 2017-06-23 566 kzfree(vc_sym_req->iv);
d31e7123 Zeng, Xin 2017-06-23 567
virtcrypto_clear_request(&vc_sym_req->base);
d79b5d0b Gonglei \(Arei\ 2016-12-27 568) }
d79b5d0b Gonglei \(Arei\ 2016-12-27 569)
:::::: The code at line 494 was first introduced by commit
:::::: d79b5d0bbf2e3aded13b0542160bde48e95d3d44 crypto: virtio - support crypto
engine framework
:::::: TO: Gonglei \(Arei\) <[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: application/gzip
