From: kernel test robot <lkp@intel.com>
To: elver@google.com
Cc: oe-kbuild-all@lists.linux.dev
Subject: [melver:cap-analysis/dev 15/26] drivers/infiniband/core/uverbs_ioctl.c:440:17: sparse: sparse: incorrect type in assignment (different modifiers)
Date: Fri, 14 Feb 2025 08:33:18 +0800 [thread overview]
Message-ID: <202502140829.SCAwcAY5-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/melver/linux.git cap-analysis/dev
head: 9c8d14ce8aff2d38bf494f5d5436a302e3236842
commit: fea714eb2659066278dc75fbd6229e18b5bfd23b [15/26] srcu: Support Clang's capability analysis
config: arc-randconfig-r132-20250214 (https://download.01.org/0day-ci/archive/20250214/202502140829.SCAwcAY5-lkp@intel.com/config)
compiler: arceb-elf-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20250214/202502140829.SCAwcAY5-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502140829.SCAwcAY5-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 )( ... )
drivers/infiniband/core/uverbs_ioctl.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, ...):
arch/arc/include/asm/uaccess.h:592:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char *d_char @@ got void [noderef] __user *to @@
arch/arc/include/asm/uaccess.h:592:33: sparse: expected unsigned char *d_char
arch/arc/include/asm/uaccess.h:592:33: sparse: got void [noderef] __user *to
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@mellanox.com>
:::::: CC: Jason Gunthorpe <jgg@mellanox.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2025-02-14 0:33 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202502140829.SCAwcAY5-lkp@intel.com \
--to=lkp@intel.com \
--cc=elver@google.com \
--cc=oe-kbuild-all@lists.linux.dev \
/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.