[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202601270825.GxcRSlEL-lkp@intel.com>
Date: Tue, 27 Jan 2026 08:36:22 +0800
From: kernel test robot <lkp@...el.com>
To: Marco Elver <elver@...gle.com>
Cc: oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
x86@...nel.org, Peter Zijlstra <peterz@...radead.org>
Subject: [tip:locking/core 18/43]
drivers/infiniband/core/uverbs_ioctl.c:440:17: sparse: sparse: incorrect type
in assignment (different modifiers)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/core
head: ccf9e070116a81d29aae30db501d562c8efd1ed8
commit: f0b7ce22d71810c8c11abcd912fbd6f57c2e9677 [18/43] srcu: Support Clang's context analysis
config: hexagon-randconfig-r132-20260127 (https://download.01.org/0day-ci/archive/20260127/202601270825.GxcRSlEL-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260127/202601270825.GxcRSlEL-lkp@intel.com/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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601270825.GxcRSlEL-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/infiniband/core/uverbs_ioctl.c:440:17: sparse: sparse: incorrect type in assignment (different modifiers) @@ expected int ( *handler )( ... ) @@ got int ( [noderef] *__v )( ... ) @@
drivers/infiniband/core/uverbs_ioctl.c:440:17: sparse: expected int ( *handler )( ... )
drivers/infiniband/core/uverbs_ioctl.c:440:17: sparse: got int ( [noderef] *__v )( ... )
vim +440 drivers/infiniband/core/uverbs_ioctl.c
fac9658cabb98a Matan Barak 2017-08-03 427
3a863577a74962 Jason Gunthorpe 2018-08-09 428 static int ib_uverbs_run_method(struct bundle_priv *pbundle,
3a863577a74962 Jason Gunthorpe 2018-08-09 429 unsigned int num_attrs)
fac9658cabb98a Matan Barak 2017-08-03 430 {
15a1b4becba886 Jason Gunthorpe 2018-11-25 431 int (*handler)(struct uverbs_attr_bundle *attrs);
155f04366e3cad Gustavo A. R. Silva 2024-03-01 432 struct uverbs_attr_bundle *bundle =
155f04366e3cad Gustavo A. R. Silva 2024-03-01 433 container_of(&pbundle->bundle, struct uverbs_attr_bundle, hdr);
3a863577a74962 Jason Gunthorpe 2018-08-09 434 size_t uattrs_size = array_size(sizeof(*pbundle->uattrs), num_attrs);
3a863577a74962 Jason Gunthorpe 2018-08-09 435 unsigned int destroy_bkey = pbundle->method_elm->destroy_bkey;
3a863577a74962 Jason Gunthorpe 2018-08-09 436 unsigned int i;
fac9658cabb98a Matan Barak 2017-08-03 437 int ret;
fac9658cabb98a Matan Barak 2017-08-03 438
3a863577a74962 Jason Gunthorpe 2018-08-09 439 /* See uverbs_disassociate_api() */
3a863577a74962 Jason Gunthorpe 2018-08-09 @440 handler = srcu_dereference(
3a863577a74962 Jason Gunthorpe 2018-08-09 441 pbundle->method_elm->handler,
3a863577a74962 Jason Gunthorpe 2018-08-09 442 &pbundle->bundle.ufile->device->disassociate_srcu);
3a863577a74962 Jason Gunthorpe 2018-08-09 443 if (!handler)
3a863577a74962 Jason Gunthorpe 2018-08-09 444 return -EIO;
3a863577a74962 Jason Gunthorpe 2018-08-09 445
155f04366e3cad Gustavo A. R. Silva 2024-03-01 446 pbundle->uattrs = uverbs_alloc(bundle, uattrs_size);
3a863577a74962 Jason Gunthorpe 2018-08-09 447 if (IS_ERR(pbundle->uattrs))
3a863577a74962 Jason Gunthorpe 2018-08-09 448 return PTR_ERR(pbundle->uattrs);
3a863577a74962 Jason Gunthorpe 2018-08-09 449 if (copy_from_user(pbundle->uattrs, pbundle->user_attrs, uattrs_size))
3a863577a74962 Jason Gunthorpe 2018-08-09 450 return -EFAULT;
3a863577a74962 Jason Gunthorpe 2018-08-09 451
3a863577a74962 Jason Gunthorpe 2018-08-09 452 for (i = 0; i != num_attrs; i++) {
3a863577a74962 Jason Gunthorpe 2018-08-09 453 ret = uverbs_set_attr(pbundle, &pbundle->uattrs[i]);
3a863577a74962 Jason Gunthorpe 2018-08-09 454 if (unlikely(ret))
3a863577a74962 Jason Gunthorpe 2018-08-09 455 return ret;
3a863577a74962 Jason Gunthorpe 2018-08-09 456 }
3a863577a74962 Jason Gunthorpe 2018-08-09 457
3a863577a74962 Jason Gunthorpe 2018-08-09 458 /* User space did not provide all the mandatory attributes */
3a863577a74962 Jason Gunthorpe 2018-08-09 459 if (unlikely(!bitmap_subset(pbundle->method_elm->attr_mandatory,
3a863577a74962 Jason Gunthorpe 2018-08-09 460 pbundle->bundle.attr_present,
3a863577a74962 Jason Gunthorpe 2018-08-09 461 pbundle->method_elm->key_bitmap_len)))
fac9658cabb98a Matan Barak 2017-08-03 462 return -EINVAL;
fac9658cabb98a Matan Barak 2017-08-03 463
07f05f40d956d4 Jason Gunthorpe 2018-11-25 464 if (pbundle->method_elm->has_udata)
155f04366e3cad Gustavo A. R. Silva 2024-03-01 465 uverbs_fill_udata(bundle, &pbundle->bundle.driver_udata,
4785860e04bc8d Jason Gunthorpe 2018-11-30 466 UVERBS_ATTR_UHW_IN, UVERBS_ATTR_UHW_OUT);
f89adedaf3feb2 Gal Pressman 2019-04-30 467 else
f89adedaf3feb2 Gal Pressman 2019-04-30 468 pbundle->bundle.driver_udata = (struct ib_udata){};
07f05f40d956d4 Jason Gunthorpe 2018-11-25 469
3a863577a74962 Jason Gunthorpe 2018-08-09 470 if (destroy_bkey != UVERBS_API_ATTR_BKEY_LEN) {
155f04366e3cad Gustavo A. R. Silva 2024-03-01 471 struct uverbs_obj_attr *destroy_attr = &bundle->attrs[destroy_bkey].obj_attr;
fac9658cabb98a Matan Barak 2017-08-03 472
155f04366e3cad Gustavo A. R. Silva 2024-03-01 473 ret = uobj_destroy(destroy_attr->uobject, bundle);
aa72c9a5f98644 Jason Gunthorpe 2018-07-26 474 if (ret)
3a863577a74962 Jason Gunthorpe 2018-08-09 475 return ret;
3a863577a74962 Jason Gunthorpe 2018-08-09 476 __clear_bit(destroy_bkey, pbundle->uobj_finalize);
aa72c9a5f98644 Jason Gunthorpe 2018-07-26 477
155f04366e3cad Gustavo A. R. Silva 2024-03-01 478 ret = handler(bundle);
3a863577a74962 Jason Gunthorpe 2018-08-09 479 uobj_put_destroy(destroy_attr->uobject);
3a863577a74962 Jason Gunthorpe 2018-08-09 480 } else {
155f04366e3cad Gustavo A. R. Silva 2024-03-01 481 ret = handler(bundle);
7452a3c745a2e7 Jason Gunthorpe 2018-07-25 482 }
7452a3c745a2e7 Jason Gunthorpe 2018-07-25 483
d6f4a21f309dfe Jason Gunthorpe 2019-01-11 484 /*
d6f4a21f309dfe Jason Gunthorpe 2019-01-11 485 * Until the drivers are revised to use the bundle directly we have to
d6f4a21f309dfe Jason Gunthorpe 2019-01-11 486 * assume that the driver wrote to its UHW_OUT and flag userspace
d6f4a21f309dfe Jason Gunthorpe 2019-01-11 487 * appropriately.
d6f4a21f309dfe Jason Gunthorpe 2019-01-11 488 */
d6f4a21f309dfe Jason Gunthorpe 2019-01-11 489 if (!ret && pbundle->method_elm->has_udata) {
d6f4a21f309dfe Jason Gunthorpe 2019-01-11 490 const struct uverbs_attr *attr =
155f04366e3cad Gustavo A. R. Silva 2024-03-01 491 uverbs_attr_get(bundle, UVERBS_ATTR_UHW_OUT);
d6f4a21f309dfe Jason Gunthorpe 2019-01-11 492
d6f4a21f309dfe Jason Gunthorpe 2019-01-11 493 if (!IS_ERR(attr))
155f04366e3cad Gustavo A. R. Silva 2024-03-01 494 ret = uverbs_set_output(bundle, attr);
d6f4a21f309dfe Jason Gunthorpe 2019-01-11 495 }
d6f4a21f309dfe Jason Gunthorpe 2019-01-11 496
3a863577a74962 Jason Gunthorpe 2018-08-09 497 /*
3a863577a74962 Jason Gunthorpe 2018-08-09 498 * EPROTONOSUPPORT is ONLY to be returned if the ioctl framework can
3a863577a74962 Jason Gunthorpe 2018-08-09 499 * not invoke the method because the request is not supported. No
3a863577a74962 Jason Gunthorpe 2018-08-09 500 * other cases should return this code.
3a863577a74962 Jason Gunthorpe 2018-08-09 501 */
3a863577a74962 Jason Gunthorpe 2018-08-09 502 if (WARN_ON_ONCE(ret == -EPROTONOSUPPORT))
3a863577a74962 Jason Gunthorpe 2018-08-09 503 return -EINVAL;
fac9658cabb98a Matan Barak 2017-08-03 504
3a863577a74962 Jason Gunthorpe 2018-08-09 505 return ret;
fac9658cabb98a Matan Barak 2017-08-03 506 }
fac9658cabb98a Matan Barak 2017-08-03 507
:::::: The code at line 440 was first introduced by commit
:::::: 3a863577a7496278892360a69d90d8465733100c IB/uverbs: Use uverbs_api to unmarshal ioctl commands
:::::: TO: Jason Gunthorpe <jgg@...lanox.com>
:::::: CC: Jason Gunthorpe <jgg@...lanox.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists