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-rhel (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 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'; did you mean 'crypto_transfer_skcipher_request_to_engine'? [-Werror=implicit-function-declaration] return crypto_transfer_cipher_request_to_engine(data_vq->engine, req); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ crypto_transfer_skcipher_request_to_engine 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'; did you mean 'crypto_finalize_skcipher_request'? [-Werror=implicit-function-declaration] crypto_finalize_cipher_request(vc_sym_req->base.dataq->engine, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ crypto_finalize_skcipher_request cc1: some warnings being treated as errors -- drivers/crypto/virtio/virtio_crypto_core.c: In function 'virtcrypto_find_vqs': >> drivers/crypto/virtio/virtio_crypto_core.c:115:24: error: 'struct crypto_engine' has no member named 'cipher_one_request' vi->data_vq[i].engine->cipher_one_request = ^~ vim +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\) <arei.gonglei@xxxxxxxxxx> :::::: CC: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip