From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH] crypto: qat - fix use of 'dma_map_single'
Date: Thu, 04 Mar 2021 21:25:03 +0800 [thread overview]
Message-ID: <202103042138.QOnGrAD4-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 10808 bytes --]
In-Reply-To: <1614570058-38194-1-git-send-email-tanghui20@huawei.com>
References: <1614570058-38194-1-git-send-email-tanghui20@huawei.com>
TO: Hui Tang <tanghui20@huawei.com>
TO: herbert(a)gondor.apana.org.au
TO: davem(a)davemloft.net
TO: marco.chiappero(a)intel.com
TO: ebiggers(a)google.com
TO: tomaszx.kowalik(a)intel.com
CC: linux-crypto(a)vger.kernel.org
CC: xuzaibo(a)huawei.com
CC: wangzhou1(a)hisilicon.com
CC: tanghui20(a)huawei.com
CC: linux-kernel(a)vger.kernel.org
Hi Hui,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on cryptodev/master]
[also build test WARNING on crypto/master sparc-next/master v5.12-rc1 next-20210304]
[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/Hui-Tang/crypto-qat-fix-use-of-dma_map_single/20210301-114717
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
:::::: branch date: 3 days ago
:::::: commit date: 3 days ago
config: i386-randconfig-m021-20210304 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/crypto/qat/qat_common/qat_algs.c:809 qat_alg_sgl_to_bufl() error: uninitialized symbol 'blp'.
vim +/blp +809 drivers/crypto/qat/qat_common/qat_algs.c
d370cec3219490 Tadeusz Struk 2014-06-05 710
d370cec3219490 Tadeusz Struk 2014-06-05 711 static int qat_alg_sgl_to_bufl(struct qat_crypto_instance *inst,
d370cec3219490 Tadeusz Struk 2014-06-05 712 struct scatterlist *sgl,
e19ab1211d2848 Herbert Xu 2015-07-30 713 struct scatterlist *sglout,
d370cec3219490 Tadeusz Struk 2014-06-05 714 struct qat_crypto_request *qat_req)
d370cec3219490 Tadeusz Struk 2014-06-05 715 {
d370cec3219490 Tadeusz Struk 2014-06-05 716 struct device *dev = &GET_DEV(inst->accel_dev);
e19ab1211d2848 Herbert Xu 2015-07-30 717 int i, sg_nctr = 0;
e19ab1211d2848 Herbert Xu 2015-07-30 718 int n = sg_nents(sgl);
d370cec3219490 Tadeusz Struk 2014-06-05 719 struct qat_alg_buf_list *bufl;
d370cec3219490 Tadeusz Struk 2014-06-05 720 struct qat_alg_buf_list *buflout = NULL;
d370cec3219490 Tadeusz Struk 2014-06-05 721 dma_addr_t blp;
d370cec3219490 Tadeusz Struk 2014-06-05 722 dma_addr_t bloutp = 0;
d370cec3219490 Tadeusz Struk 2014-06-05 723 struct scatterlist *sg;
1793d1aba19415 Gustavo A. R. Silva 2019-06-06 724 size_t sz_out, sz = struct_size(bufl, bufers, n + 1);
d370cec3219490 Tadeusz Struk 2014-06-05 725
d370cec3219490 Tadeusz Struk 2014-06-05 726 if (unlikely(!n))
d370cec3219490 Tadeusz Struk 2014-06-05 727 return -EINVAL;
d370cec3219490 Tadeusz Struk 2014-06-05 728
82f82504b8f5f1 Tadeusz Struk 2014-12-08 729 bufl = kzalloc_node(sz, GFP_ATOMIC,
09adc8789c4e89 Tadeusz Struk 2014-10-13 730 dev_to_node(&GET_DEV(inst->accel_dev)));
d370cec3219490 Tadeusz Struk 2014-06-05 731 if (unlikely(!bufl))
d370cec3219490 Tadeusz Struk 2014-06-05 732 return -ENOMEM;
d370cec3219490 Tadeusz Struk 2014-06-05 733
d370cec3219490 Tadeusz Struk 2014-06-05 734 for_each_sg(sgl, sg, n, i) {
e19ab1211d2848 Herbert Xu 2015-07-30 735 int y = sg_nctr;
82f82504b8f5f1 Tadeusz Struk 2014-12-08 736
82f82504b8f5f1 Tadeusz Struk 2014-12-08 737 if (!sg->length)
82f82504b8f5f1 Tadeusz Struk 2014-12-08 738 continue;
d65071ecde1ed1 Tadeusz Struk 2014-06-24 739
d370cec3219490 Tadeusz Struk 2014-06-05 740 bufl->bufers[y].addr = dma_map_single(dev, sg_virt(sg),
d370cec3219490 Tadeusz Struk 2014-06-05 741 sg->length,
d370cec3219490 Tadeusz Struk 2014-06-05 742 DMA_BIDIRECTIONAL);
d370cec3219490 Tadeusz Struk 2014-06-05 743 bufl->bufers[y].len = sg->length;
d370cec3219490 Tadeusz Struk 2014-06-05 744 if (unlikely(dma_mapping_error(dev, bufl->bufers[y].addr)))
72eed063767e13 Arnd Bergmann 2017-06-22 745 goto err_in;
82f82504b8f5f1 Tadeusz Struk 2014-12-08 746 sg_nctr++;
d370cec3219490 Tadeusz Struk 2014-06-05 747 }
e19ab1211d2848 Herbert Xu 2015-07-30 748 bufl->num_bufs = sg_nctr;
54bc41cf4d0517 Hui Tang 2021-03-01 749 blp = dma_map_single(dev, bufl, sz, DMA_TO_DEVICE);
54bc41cf4d0517 Hui Tang 2021-03-01 750 if (unlikely(dma_mapping_error(dev, blp)))
54bc41cf4d0517 Hui Tang 2021-03-01 751 goto err_in;
d370cec3219490 Tadeusz Struk 2014-06-05 752 qat_req->buf.bl = bufl;
d370cec3219490 Tadeusz Struk 2014-06-05 753 qat_req->buf.blp = blp;
d370cec3219490 Tadeusz Struk 2014-06-05 754 qat_req->buf.sz = sz;
d370cec3219490 Tadeusz Struk 2014-06-05 755 /* Handle out of place operation */
d370cec3219490 Tadeusz Struk 2014-06-05 756 if (sgl != sglout) {
d370cec3219490 Tadeusz Struk 2014-06-05 757 struct qat_alg_buf *bufers;
d370cec3219490 Tadeusz Struk 2014-06-05 758
82f82504b8f5f1 Tadeusz Struk 2014-12-08 759 n = sg_nents(sglout);
1793d1aba19415 Gustavo A. R. Silva 2019-06-06 760 sz_out = struct_size(buflout, bufers, n + 1);
82f82504b8f5f1 Tadeusz Struk 2014-12-08 761 sg_nctr = 0;
82f82504b8f5f1 Tadeusz Struk 2014-12-08 762 buflout = kzalloc_node(sz_out, GFP_ATOMIC,
09adc8789c4e89 Tadeusz Struk 2014-10-13 763 dev_to_node(&GET_DEV(inst->accel_dev)));
d370cec3219490 Tadeusz Struk 2014-06-05 764 if (unlikely(!buflout))
72eed063767e13 Arnd Bergmann 2017-06-22 765 goto err_in;
d370cec3219490 Tadeusz Struk 2014-06-05 766 bufers = buflout->bufers;
d370cec3219490 Tadeusz Struk 2014-06-05 767 for_each_sg(sglout, sg, n, i) {
e19ab1211d2848 Herbert Xu 2015-07-30 768 int y = sg_nctr;
82f82504b8f5f1 Tadeusz Struk 2014-12-08 769
82f82504b8f5f1 Tadeusz Struk 2014-12-08 770 if (!sg->length)
82f82504b8f5f1 Tadeusz Struk 2014-12-08 771 continue;
d65071ecde1ed1 Tadeusz Struk 2014-06-24 772
d370cec3219490 Tadeusz Struk 2014-06-05 773 bufers[y].addr = dma_map_single(dev, sg_virt(sg),
d370cec3219490 Tadeusz Struk 2014-06-05 774 sg->length,
d370cec3219490 Tadeusz Struk 2014-06-05 775 DMA_BIDIRECTIONAL);
d370cec3219490 Tadeusz Struk 2014-06-05 776 if (unlikely(dma_mapping_error(dev, bufers[y].addr)))
72eed063767e13 Arnd Bergmann 2017-06-22 777 goto err_out;
82f82504b8f5f1 Tadeusz Struk 2014-12-08 778 bufers[y].len = sg->length;
82f82504b8f5f1 Tadeusz Struk 2014-12-08 779 sg_nctr++;
d370cec3219490 Tadeusz Struk 2014-06-05 780 }
e19ab1211d2848 Herbert Xu 2015-07-30 781 buflout->num_bufs = sg_nctr;
82f82504b8f5f1 Tadeusz Struk 2014-12-08 782 buflout->num_mapped_bufs = sg_nctr;
54bc41cf4d0517 Hui Tang 2021-03-01 783 bloutp = dma_map_single(dev, buflout, sz_out, DMA_TO_DEVICE);
54bc41cf4d0517 Hui Tang 2021-03-01 784 if (unlikely(dma_mapping_error(dev, bloutp)))
54bc41cf4d0517 Hui Tang 2021-03-01 785 goto err_out;
d370cec3219490 Tadeusz Struk 2014-06-05 786 qat_req->buf.blout = buflout;
d370cec3219490 Tadeusz Struk 2014-06-05 787 qat_req->buf.bloutp = bloutp;
82f82504b8f5f1 Tadeusz Struk 2014-12-08 788 qat_req->buf.sz_out = sz_out;
d370cec3219490 Tadeusz Struk 2014-06-05 789 } else {
d370cec3219490 Tadeusz Struk 2014-06-05 790 /* Otherwise set the src and dst to the same address */
d370cec3219490 Tadeusz Struk 2014-06-05 791 qat_req->buf.bloutp = qat_req->buf.blp;
82f82504b8f5f1 Tadeusz Struk 2014-12-08 792 qat_req->buf.sz_out = 0;
d370cec3219490 Tadeusz Struk 2014-06-05 793 }
d370cec3219490 Tadeusz Struk 2014-06-05 794 return 0;
82f82504b8f5f1 Tadeusz Struk 2014-12-08 795
72eed063767e13 Arnd Bergmann 2017-06-22 796 err_out:
54bc41cf4d0517 Hui Tang 2021-03-01 797 if (!dma_mapping_error(dev, bloutp))
54bc41cf4d0517 Hui Tang 2021-03-01 798 dma_unmap_single(dev, bloutp, sz_out, DMA_TO_DEVICE);
54bc41cf4d0517 Hui Tang 2021-03-01 799
82f82504b8f5f1 Tadeusz Struk 2014-12-08 800 n = sg_nents(sglout);
e19ab1211d2848 Herbert Xu 2015-07-30 801 for (i = 0; i < n; i++)
82f82504b8f5f1 Tadeusz Struk 2014-12-08 802 if (!dma_mapping_error(dev, buflout->bufers[i].addr))
82f82504b8f5f1 Tadeusz Struk 2014-12-08 803 dma_unmap_single(dev, buflout->bufers[i].addr,
82f82504b8f5f1 Tadeusz Struk 2014-12-08 804 buflout->bufers[i].len,
d370cec3219490 Tadeusz Struk 2014-06-05 805 DMA_BIDIRECTIONAL);
d370cec3219490 Tadeusz Struk 2014-06-05 806 kfree(buflout);
72eed063767e13 Arnd Bergmann 2017-06-22 807
72eed063767e13 Arnd Bergmann 2017-06-22 808 err_in:
54bc41cf4d0517 Hui Tang 2021-03-01 @809 if (!dma_mapping_error(dev, blp))
54bc41cf4d0517 Hui Tang 2021-03-01 810 dma_unmap_single(dev, blp, sz, DMA_TO_DEVICE);
54bc41cf4d0517 Hui Tang 2021-03-01 811
72eed063767e13 Arnd Bergmann 2017-06-22 812 n = sg_nents(sgl);
72eed063767e13 Arnd Bergmann 2017-06-22 813 for (i = 0; i < n; i++)
72eed063767e13 Arnd Bergmann 2017-06-22 814 if (!dma_mapping_error(dev, bufl->bufers[i].addr))
72eed063767e13 Arnd Bergmann 2017-06-22 815 dma_unmap_single(dev, bufl->bufers[i].addr,
72eed063767e13 Arnd Bergmann 2017-06-22 816 bufl->bufers[i].len,
72eed063767e13 Arnd Bergmann 2017-06-22 817 DMA_BIDIRECTIONAL);
72eed063767e13 Arnd Bergmann 2017-06-22 818
72eed063767e13 Arnd Bergmann 2017-06-22 819 kfree(bufl);
72eed063767e13 Arnd Bergmann 2017-06-22 820
72eed063767e13 Arnd Bergmann 2017-06-22 821 dev_err(dev, "Failed to map buf for dma\n");
d370cec3219490 Tadeusz Struk 2014-06-05 822 return -ENOMEM;
d370cec3219490 Tadeusz Struk 2014-06-05 823 }
d370cec3219490 Tadeusz Struk 2014-06-05 824
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32747 bytes --]
next reply other threads:[~2021-03-04 13:25 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-04 13:25 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2021-03-01 3:40 [PATCH] crypto: qat - fix use of 'dma_map_single' Hui Tang
2021-03-01 8:10 ` kernel test robot
2021-03-01 8:10 ` kernel test robot
2021-03-04 13:40 ` Dan Carpenter
2021-03-04 13:40 ` Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202103042138.QOnGrAD4-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.