[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202203090030.CaEQq1U8-lkp@intel.com>
Date: Wed, 9 Mar 2022 00:31:03 +0800
From: kernel test robot <lkp@...el.com>
To: zhenwei pi <pizhenwei@...edance.com>
Cc: kbuild-all@...ts.01.org, kvm@...r.kernel.org,
virtualization@...ts.linux-foundation.org, netdev@...r.kernel.org,
"Michael S. Tsirkin" <mst@...hat.com>,
lei he <helei.sig11@...edance.com>,
Gonglei <arei.gonglei@...wei.com>
Subject: [mst-vhost:vhost 28/60]
drivers/crypto/virtio/virtio_crypto_akcipher_algs.c:378: undefined reference
to `rsa_parse_priv_key'
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git vhost
head: c5f633abfd09491ae7ecbc7fcfca08332ad00a8b
commit: 8a75f36b5d7a48f1c5a0b46638961c951ec6ecd9 [28/60] virtio-crypto: implement RSA algorithm
config: x86_64-randconfig-a015 (https://download.01.org/0day-ci/archive/20220309/202203090030.CaEQq1U8-lkp@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git/commit/?id=8a75f36b5d7a48f1c5a0b46638961c951ec6ecd9
git remote add mst-vhost https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git
git fetch --no-tags mst-vhost vhost
git checkout 8a75f36b5d7a48f1c5a0b46638961c951ec6ecd9
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>
All errors (new ones prefixed by >>):
ld: drivers/crypto/virtio/virtio_crypto_akcipher_algs.o: in function `virtio_crypto_rsa_set_key':
>> drivers/crypto/virtio/virtio_crypto_akcipher_algs.c:378: undefined reference to `rsa_parse_priv_key'
>> ld: drivers/crypto/virtio/virtio_crypto_akcipher_algs.c:381: undefined reference to `rsa_parse_pub_key'
vim +378 drivers/crypto/virtio/virtio_crypto_akcipher_algs.c
354
355 static int virtio_crypto_rsa_set_key(struct crypto_akcipher *tfm,
356 const void *key,
357 unsigned int keylen,
358 bool private,
359 int padding_algo,
360 int hash_algo)
361 {
362 struct virtio_crypto_akcipher_ctx *ctx = akcipher_tfm_ctx(tfm);
363 struct virtio_crypto_rsa_ctx *rsa_ctx = &ctx->rsa_ctx;
364 struct virtio_crypto *vcrypto;
365 struct virtio_crypto_ctrl_header header;
366 struct virtio_crypto_akcipher_session_para para;
367 struct rsa_key rsa_key = {0};
368 int node = virtio_crypto_get_current_node();
369 uint32_t keytype;
370 int ret;
371
372 /* mpi_free will test n, just free it. */
373 mpi_free(rsa_ctx->n);
374 rsa_ctx->n = NULL;
375
376 if (private) {
377 keytype = VIRTIO_CRYPTO_AKCIPHER_KEY_TYPE_PRIVATE;
> 378 ret = rsa_parse_priv_key(&rsa_key, key, keylen);
379 } else {
380 keytype = VIRTIO_CRYPTO_AKCIPHER_KEY_TYPE_PUBLIC;
> 381 ret = rsa_parse_pub_key(&rsa_key, key, keylen);
382 }
383
384 if (ret)
385 return ret;
386
387 rsa_ctx->n = mpi_read_raw_data(rsa_key.n, rsa_key.n_sz);
388 if (!rsa_ctx->n)
389 return -ENOMEM;
390
391 if (!ctx->vcrypto) {
392 vcrypto = virtcrypto_get_dev_node(node, VIRTIO_CRYPTO_SERVICE_AKCIPHER,
393 VIRTIO_CRYPTO_AKCIPHER_RSA);
394 if (!vcrypto) {
395 pr_err("virtio_crypto: Could not find a virtio device in the system or unsupported algo\n");
396 return -ENODEV;
397 }
398
399 ctx->vcrypto = vcrypto;
400 } else {
401 virtio_crypto_alg_akcipher_close_session(ctx);
402 }
403
404 /* set ctrl header */
405 header.opcode = cpu_to_le32(VIRTIO_CRYPTO_AKCIPHER_CREATE_SESSION);
406 header.algo = cpu_to_le32(VIRTIO_CRYPTO_AKCIPHER_RSA);
407 header.queue_id = 0;
408
409 /* set RSA para */
410 para.algo = cpu_to_le32(VIRTIO_CRYPTO_AKCIPHER_RSA);
411 para.keytype = cpu_to_le32(keytype);
412 para.keylen = cpu_to_le32(keylen);
413 para.u.rsa.padding_algo = cpu_to_le32(padding_algo);
414 para.u.rsa.hash_algo = cpu_to_le32(hash_algo);
415
416 return virtio_crypto_alg_akcipher_init_session(ctx, &header, ¶, key, keylen);
417 }
418
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Powered by blists - more mailing lists