lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ