crypto/crypto_engine.c:56:9: sparse: sparse: incorrect type in argument 1 (different address spaces)

From: kernel test robot
Date: Fri Aug 11 2023 - 04:28:42 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 25aa0bebba72b318e71fe205bfd1236550cc9534
commit: 93a4fa622eb061f75f87f0cf9609ab4e69c67d01 LoongArch: Add STACKTRACE support
date: 12 months ago
config: loongarch-randconfig-r091-20230811 (https://download.01.org/0day-ci/archive/20230811/202308111617.zQJeSOZG-lkp@xxxxxxxxx/config)
compiler: loongarch64-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230811/202308111617.zQJeSOZG-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308111617.zQJeSOZG-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> crypto/crypto_engine.c:56:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
crypto/crypto_engine.c:56:9: sparse: expected void *ptr
crypto/crypto_engine.c:56:9: sparse: got unsigned int [noderef] __percpu *
>> crypto/crypto_engine.c:56:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
crypto/crypto_engine.c:56:9: sparse: expected void *ptr
crypto/crypto_engine.c:56:9: sparse: got unsigned int [noderef] __percpu *
>> crypto/crypto_engine.c:56:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
crypto/crypto_engine.c:56:9: sparse: expected void *ptr
crypto/crypto_engine.c:56:9: sparse: got unsigned int [noderef] __percpu *
>> crypto/crypto_engine.c:56:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
crypto/crypto_engine.c:56:9: sparse: expected void *ptr
crypto/crypto_engine.c:56:9: sparse: got unsigned int [noderef] __percpu *
--
net/mptcp/options.c: note: in included file:
>> net/mptcp/protocol.h:547:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/mptcp/protocol.h:547:9: sparse: expected void *ptr
net/mptcp/protocol.h:547:9: sparse: got unsigned int [noderef] __percpu *
>> net/mptcp/protocol.h:547:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/mptcp/protocol.h:547:9: sparse: expected void *ptr
net/mptcp/protocol.h:547:9: sparse: got unsigned int [noderef] __percpu *
>> net/mptcp/protocol.h:547:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/mptcp/protocol.h:547:9: sparse: expected void *ptr
net/mptcp/protocol.h:547:9: sparse: got unsigned int [noderef] __percpu *
>> net/mptcp/protocol.h:547:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/mptcp/protocol.h:547:9: sparse: expected void *ptr
net/mptcp/protocol.h:547:9: sparse: got unsigned int [noderef] __percpu *
--
net/mptcp/protocol.c: note: in included file:
>> net/mptcp/protocol.h:547:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/mptcp/protocol.h:547:9: sparse: expected void *ptr
net/mptcp/protocol.h:547:9: sparse: got unsigned int [noderef] __percpu *
>> net/mptcp/protocol.h:547:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/mptcp/protocol.h:547:9: sparse: expected void *ptr
net/mptcp/protocol.h:547:9: sparse: got unsigned int [noderef] __percpu *
>> net/mptcp/protocol.h:547:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/mptcp/protocol.h:547:9: sparse: expected void *ptr
net/mptcp/protocol.h:547:9: sparse: got unsigned int [noderef] __percpu *
>> net/mptcp/protocol.h:547:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/mptcp/protocol.h:547:9: sparse: expected void *ptr
net/mptcp/protocol.h:547:9: sparse: got unsigned int [noderef] __percpu *
net/mptcp/protocol.c:3011:24: sparse: sparse: context imbalance in 'mptcp_sk_clone' - unexpected unlock
>> net/mptcp/protocol.h:547:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/mptcp/protocol.h:547:9: sparse: expected void *ptr
net/mptcp/protocol.h:547:9: sparse: got unsigned int [noderef] __percpu *
>> net/mptcp/protocol.h:547:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/mptcp/protocol.h:547:9: sparse: expected void *ptr
net/mptcp/protocol.h:547:9: sparse: got unsigned int [noderef] __percpu *
>> net/mptcp/protocol.h:547:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/mptcp/protocol.h:547:9: sparse: expected void *ptr
net/mptcp/protocol.h:547:9: sparse: got unsigned int [noderef] __percpu *
>> net/mptcp/protocol.h:547:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/mptcp/protocol.h:547:9: sparse: expected void *ptr
net/mptcp/protocol.h:547:9: sparse: got unsigned int [noderef] __percpu *

vim +56 crypto/crypto_engine.c

735d37b5424b27 Baolin Wang 2016-01-26 18
218d1cc1860c45 Corentin LABBE 2018-01-26 19 /**
218d1cc1860c45 Corentin LABBE 2018-01-26 20 * crypto_finalize_request - finalize one request if the request is done
218d1cc1860c45 Corentin LABBE 2018-01-26 21 * @engine: the hardware engine
218d1cc1860c45 Corentin LABBE 2018-01-26 22 * @req: the request need to be finalized
218d1cc1860c45 Corentin LABBE 2018-01-26 23 * @err: error number
218d1cc1860c45 Corentin LABBE 2018-01-26 24 */
218d1cc1860c45 Corentin LABBE 2018-01-26 25 static void crypto_finalize_request(struct crypto_engine *engine,
218d1cc1860c45 Corentin LABBE 2018-01-26 26 struct crypto_async_request *req, int err)
218d1cc1860c45 Corentin LABBE 2018-01-26 27 {
218d1cc1860c45 Corentin LABBE 2018-01-26 28 unsigned long flags;
6a89f492f8e509 Iuliana Prodan 2020-04-28 29 bool finalize_req = false;
218d1cc1860c45 Corentin LABBE 2018-01-26 30 int ret;
218d1cc1860c45 Corentin LABBE 2018-01-26 31 struct crypto_engine_ctx *enginectx;
218d1cc1860c45 Corentin LABBE 2018-01-26 32
6a89f492f8e509 Iuliana Prodan 2020-04-28 33 /*
6a89f492f8e509 Iuliana Prodan 2020-04-28 34 * If hardware cannot enqueue more requests
6a89f492f8e509 Iuliana Prodan 2020-04-28 35 * and retry mechanism is not supported
6a89f492f8e509 Iuliana Prodan 2020-04-28 36 * make sure we are completing the current request
6a89f492f8e509 Iuliana Prodan 2020-04-28 37 */
6a89f492f8e509 Iuliana Prodan 2020-04-28 38 if (!engine->retry_support) {
218d1cc1860c45 Corentin LABBE 2018-01-26 39 spin_lock_irqsave(&engine->queue_lock, flags);
6a89f492f8e509 Iuliana Prodan 2020-04-28 40 if (engine->cur_req == req) {
6a89f492f8e509 Iuliana Prodan 2020-04-28 41 finalize_req = true;
6a89f492f8e509 Iuliana Prodan 2020-04-28 42 engine->cur_req = NULL;
6a89f492f8e509 Iuliana Prodan 2020-04-28 43 }
218d1cc1860c45 Corentin LABBE 2018-01-26 44 spin_unlock_irqrestore(&engine->queue_lock, flags);
6a89f492f8e509 Iuliana Prodan 2020-04-28 45 }
218d1cc1860c45 Corentin LABBE 2018-01-26 46
6a89f492f8e509 Iuliana Prodan 2020-04-28 47 if (finalize_req || engine->retry_support) {
218d1cc1860c45 Corentin LABBE 2018-01-26 48 enginectx = crypto_tfm_ctx(req->tfm);
6a89f492f8e509 Iuliana Prodan 2020-04-28 49 if (enginectx->op.prepare_request &&
218d1cc1860c45 Corentin LABBE 2018-01-26 50 enginectx->op.unprepare_request) {
218d1cc1860c45 Corentin LABBE 2018-01-26 51 ret = enginectx->op.unprepare_request(engine, req);
218d1cc1860c45 Corentin LABBE 2018-01-26 52 if (ret)
218d1cc1860c45 Corentin LABBE 2018-01-26 53 dev_err(engine->dev, "failed to unprepare request\n");
218d1cc1860c45 Corentin LABBE 2018-01-26 54 }
218d1cc1860c45 Corentin LABBE 2018-01-26 55 }
4058cf08945c18 Corentin Labbe 2022-02-21 @56 lockdep_assert_in_softirq();
218d1cc1860c45 Corentin LABBE 2018-01-26 57 req->complete(req, err);
218d1cc1860c45 Corentin LABBE 2018-01-26 58
218d1cc1860c45 Corentin LABBE 2018-01-26 59 kthread_queue_work(engine->kworker, &engine->pump_requests);
218d1cc1860c45 Corentin LABBE 2018-01-26 60 }
218d1cc1860c45 Corentin LABBE 2018-01-26 61

:::::: The code at line 56 was first introduced by commit
:::::: 4058cf08945c18a6de193f4118fd05d83d3d4285 crypto: engine - check if BH is disabled during completion

:::::: TO: Corentin Labbe <clabbe@xxxxxxxxxxxx>
:::::: CC: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki