All of lore.kernel.org
 help / color / mirror / Atom feed
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.