Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
* [jlayton:uek-localio 1790/2262] net/rds/rdma.c:596:27: warning: variable 'local_vec' set but not used
@ 2025-05-24  7:59 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-05-24  7:59 UTC (permalink / raw)
  To: Hans Westgaard Ry
  Cc: llvm, oe-kbuild-all, LUCI Bot, Håkon Bugge, Vegard Nossum

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux.git uek-localio
head:   65b0dc6bb1f5c18e63d8ee9ea1cca997456a81a9
commit: 26ecf98be5bc33038c1bb44213e4ffa9fe06e5a3 [1790/2262] rds: copy_from_user only once per rds_sendmsg system call
config: arm-randconfig-003-20250524 (https://download.01.org/0day-ci/archive/20250524/202505241500.l5ICS3KH-lkp@intel.com/config)
compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250524/202505241500.l5ICS3KH-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/202505241500.l5ICS3KH-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from net/rds/rdma.c:38:
   In file included from net/rds/trace.h:19:
   net/rds/rds.h:940:22: error: no member named 'net' in 'possible_net_t'
     940 |                         return sk->sk_net.net->ns.inum;
         |                                ~~~~~~~~~~ ^
>> net/rds/rdma.c:596:27: warning: variable 'local_vec' set but not used [-Wunused-but-set-variable]
     596 |         struct rds_iovec __user *local_vec;
         |                                  ^
   1 warning and 1 error generated.


vim +/local_vec +596 net/rds/rdma.c

b55cdb771fa421 Andy Grover       2012-02-03  582  
b55cdb771fa421 Andy Grover       2012-02-03  583  /*
b55cdb771fa421 Andy Grover       2012-02-03  584   * The application asks for a RDMA transfer.
b55cdb771fa421 Andy Grover       2012-02-03  585   * Extract all arguments and set up the rdma_op
b55cdb771fa421 Andy Grover       2012-02-03  586   */
784360a037ded7 Ka-Cheong Poon    2020-10-09  587  static int rds_cmsg_rdma_args(struct rds_sock *rs, struct rds_message *rm,
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  588  			      struct cmsghdr *cmsg, struct rds_iov_vector *iov)
b55cdb771fa421 Andy Grover       2012-02-03  589  {
b55cdb771fa421 Andy Grover       2012-02-03  590  	struct rds_rdma_args *args;
b55cdb771fa421 Andy Grover       2012-02-03  591  	struct rm_rdma_op *op = &rm->rdma;
6d337b99d35943 Dan Carpenter     2010-09-18  592  	int nr_pages;
45de215356daa1 Gerd Rausch       2025-04-16  593  	unsigned int nr_bytes;
45de215356daa1 Gerd Rausch       2025-04-16  594  	struct page **pages = NULL;
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  595  	struct rds_iovec *vec;
45de215356daa1 Gerd Rausch       2025-04-16 @596  	struct rds_iovec __user *local_vec;
45de215356daa1 Gerd Rausch       2025-04-16  597  	unsigned int i, j;
b55cdb771fa421 Andy Grover       2012-02-03  598  	int ret = 0;
b55cdb771fa421 Andy Grover       2012-02-03  599  
b55cdb771fa421 Andy Grover       2012-02-03  600  	if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct rds_rdma_args))
b55cdb771fa421 Andy Grover       2012-02-03  601  	    || rm->rdma.op_active)
b55cdb771fa421 Andy Grover       2012-02-03  602  		return -EINVAL;
fc8162e3c034af Andy Grover       2010-10-28  603  
b55cdb771fa421 Andy Grover       2012-02-03  604  	args = CMSG_DATA(cmsg);
fc8162e3c034af Andy Grover       2010-10-28  605  
761f0801f71ca0 Ka-Cheong Poon    2017-10-20  606  	if (ipv6_addr_any(&rs->rs_bound_addr)) {
45de215356daa1 Gerd Rausch       2025-04-16  607  		ret = -ENOTCONN; /* XXX not a great errno */
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  608  		goto out_ret;
fc8162e3c034af Andy Grover       2010-10-28  609  	}
fc8162e3c034af Andy Grover       2010-10-28  610  
45de215356daa1 Gerd Rausch       2025-04-16  611  	if (args->nr_local > (u64)UINT_MAX) {
45de215356daa1 Gerd Rausch       2025-04-16  612  		ret = -EMSGSIZE;
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  613  		goto out_ret;
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  614  	}
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  615  	if (iov->iv_entries != args->nr_local) {
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  616  		ret = -EINVAL;
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  617  		goto out_ret;
fc8162e3c034af Andy Grover       2010-10-28  618  	}
fc8162e3c034af Andy Grover       2010-10-28  619  
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  620  	nr_pages = iov->iv_tot_pages;
b55cdb771fa421 Andy Grover       2012-02-03  621  	pages = kcalloc(nr_pages, sizeof(struct page *), GFP_KERNEL);
b55cdb771fa421 Andy Grover       2012-02-03  622  	if (!pages) {
45de215356daa1 Gerd Rausch       2025-04-16  623  		ret = -ENOMEM;
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  624  		goto out_ret;
45de215356daa1 Gerd Rausch       2025-04-16  625  	}
2eafa1746f1787 Hans Westgaard Ry 2020-01-15  626  
b55cdb771fa421 Andy Grover       2012-02-03  627  	op->op_write = !!(args->flags & RDS_RDMA_READWRITE);
b55cdb771fa421 Andy Grover       2012-02-03  628  	op->op_fence = !!(args->flags & RDS_RDMA_FENCE);
b55cdb771fa421 Andy Grover       2012-02-03  629  	op->op_notify = !!(args->flags & RDS_RDMA_NOTIFY_ME);
b55cdb771fa421 Andy Grover       2012-02-03  630  	op->op_silent = !!(args->flags & RDS_RDMA_SILENT);
df1f937209703c Bang Nguyen       2012-04-13  631  	op->op_remote_complete = !!(args->flags & RDS_RDMA_REMOTE_COMPLETE);
b55cdb771fa421 Andy Grover       2012-02-03  632  	op->op_active = 1;
b55cdb771fa421 Andy Grover       2012-02-03  633  	op->op_recverr = rs->rs_recverr;
eff5f53bef75c0 Andy Grover       2009-02-24  634  	WARN_ON(!nr_pages);
b55cdb771fa421 Andy Grover       2012-02-03  635  	op->op_sg = rds_message_alloc_sgs(rm, nr_pages);
eff5f53bef75c0 Andy Grover       2009-02-24  636  
5bb487dd85f8a8 Bang Nguyen       2012-12-27  637  	if (op->op_notify || op->op_recverr || rds_async_send_enabled) {
eff5f53bef75c0 Andy Grover       2009-02-24  638  		/* We allocate an uninitialized notifier here, because
eff5f53bef75c0 Andy Grover       2009-02-24  639  		 * we don't want to do that in the completion handler. We
eff5f53bef75c0 Andy Grover       2009-02-24  640  		 * would have to use GFP_ATOMIC there, and don't want to deal
eff5f53bef75c0 Andy Grover       2009-02-24  641  		 * with failed allocations.
eff5f53bef75c0 Andy Grover       2009-02-24  642  		 */
f544722b07d772 Bang Nguyen       2012-02-19  643  		op->op_notifier = kzalloc(sizeof(struct rds_notifier), GFP_KERNEL);
b55cdb771fa421 Andy Grover       2012-02-03  644  		if (!op->op_notifier) {
eff5f53bef75c0 Andy Grover       2009-02-24  645  			ret = -ENOMEM;
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  646  			goto out_pages;
eff5f53bef75c0 Andy Grover       2009-02-24  647  		}
b55cdb771fa421 Andy Grover       2012-02-03  648  		op->op_notifier->n_user_token = args->user_token;
f544722b07d772 Bang Nguyen       2012-02-19  649  		op->op_notifier->n_status = RDS_RDMA_SEND_SUCCESS;
eff5f53bef75c0 Andy Grover       2009-02-24  650  	}
eff5f53bef75c0 Andy Grover       2009-02-24  651  
eff5f53bef75c0 Andy Grover       2009-02-24  652  	/* The cookie contains the R_Key of the remote memory region, and
eff5f53bef75c0 Andy Grover       2009-02-24  653  	 * optionally an offset into it. This is how we implement RDMA into
eff5f53bef75c0 Andy Grover       2009-02-24  654  	 * unaligned memory.
eff5f53bef75c0 Andy Grover       2009-02-24  655  	 * When setting up the RDMA, we need to add that offset to the
eff5f53bef75c0 Andy Grover       2009-02-24  656  	 * destination address (which is really an offset into the MR)
eff5f53bef75c0 Andy Grover       2009-02-24  657  	 * FIXME: We may want to move this into ib_rdma.c
eff5f53bef75c0 Andy Grover       2009-02-24  658  	 */
b55cdb771fa421 Andy Grover       2012-02-03  659  	op->op_rkey = rds_rdma_cookie_key(args->cookie);
b55cdb771fa421 Andy Grover       2012-02-03  660  	op->op_remote_addr = args->remote_vec.addr + rds_rdma_cookie_offset(args->cookie);
eff5f53bef75c0 Andy Grover       2009-02-24  661  
eff5f53bef75c0 Andy Grover       2009-02-24  662  	nr_bytes = 0;
eff5f53bef75c0 Andy Grover       2009-02-24  663  
eff5f53bef75c0 Andy Grover       2009-02-24  664  	rdsdebug("RDS: rdma prepare nr_local %llu rva %llx rkey %x\n",
eff5f53bef75c0 Andy Grover       2009-02-24  665  	       (unsigned long long)args->nr_local,
eff5f53bef75c0 Andy Grover       2009-02-24  666  	       (unsigned long long)args->remote_vec.addr,
b55cdb771fa421 Andy Grover       2012-02-03  667  	       op->op_rkey);
b55cdb771fa421 Andy Grover       2012-02-03  668  
b55cdb771fa421 Andy Grover       2012-02-03  669  	local_vec = (struct rds_iovec __user *)(unsigned long) args->local_vec_addr;
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  670  	vec = iov->iv_vec;
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  671  	for (i = 0; i < args->nr_local; i++, vec++) {
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  672  		/* don't need to check, rds_rdma_pages() verified nr will be +nonzero */
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  673  		unsigned int nr = iov->iv_nr_pages[i];
eff5f53bef75c0 Andy Grover       2009-02-24  674  
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  675  		rs->rs_user_addr  = vec->addr;
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  676  		rs->rs_user_bytes = vec->bytes;
eff5f53bef75c0 Andy Grover       2009-02-24  677  
eff5f53bef75c0 Andy Grover       2009-02-24  678  		/* If it's a WRITE operation, we want to pin the pages for reading.
eff5f53bef75c0 Andy Grover       2009-02-24  679  		 * If it's a READ operation, we need to pin the pages for writing.
eff5f53bef75c0 Andy Grover       2009-02-24  680  		 */
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  681  		ret = rds_pin_pages(vec->addr, nr, pages, !op->op_write);
45de215356daa1 Gerd Rausch       2025-04-16  682  		if (ret < 0)
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  683  			goto out_pages;
eff5f53bef75c0 Andy Grover       2009-02-24  684  
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  685  		nr_bytes += vec->bytes;
eff5f53bef75c0 Andy Grover       2009-02-24  686  
eff5f53bef75c0 Andy Grover       2009-02-24  687  		for (j = 0; j < nr; j++) {
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  688  			unsigned int offset = vec->addr & ~PAGE_MASK;
b55cdb771fa421 Andy Grover       2012-02-03  689  			struct scatterlist *sg;
eff5f53bef75c0 Andy Grover       2009-02-24  690  
b55cdb771fa421 Andy Grover       2012-02-03  691  			sg = &op->op_sg[op->op_nents + j];
eff5f53bef75c0 Andy Grover       2009-02-24  692  			sg_set_page(sg, pages[j],
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  693  					min_t(unsigned int, vec->bytes, PAGE_SIZE - offset),
eff5f53bef75c0 Andy Grover       2009-02-24  694  					offset);
eff5f53bef75c0 Andy Grover       2009-02-24  695  
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  696  			vec->addr  += sg->length;
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  697  			vec->bytes -= sg->length;
eff5f53bef75c0 Andy Grover       2009-02-24  698  		}
eff5f53bef75c0 Andy Grover       2009-02-24  699  
b55cdb771fa421 Andy Grover       2012-02-03  700  		op->op_nents += nr;
eff5f53bef75c0 Andy Grover       2009-02-24  701  	}
eff5f53bef75c0 Andy Grover       2009-02-24  702  
eff5f53bef75c0 Andy Grover       2009-02-24  703  	if (nr_bytes > args->remote_vec.bytes) {
eff5f53bef75c0 Andy Grover       2009-02-24  704  		rdsdebug("RDS nr_bytes %u remote_bytes %u do not match\n",
eff5f53bef75c0 Andy Grover       2009-02-24  705  				nr_bytes,
eff5f53bef75c0 Andy Grover       2009-02-24  706  				(unsigned int) args->remote_vec.bytes);
eff5f53bef75c0 Andy Grover       2009-02-24  707  		ret = -EINVAL;
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  708  		goto out_pages;
eff5f53bef75c0 Andy Grover       2009-02-24  709  	}
b55cdb771fa421 Andy Grover       2012-02-03  710  	op->op_bytes = nr_bytes;
eff5f53bef75c0 Andy Grover       2009-02-24  711  
45de215356daa1 Gerd Rausch       2025-04-16  712  	ret = 0;
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  713  out_pages:
eff5f53bef75c0 Andy Grover       2009-02-24  714  	kfree(pages);
26ecf98be5bc33 Hans Westgaard Ry 2022-03-21  715  out_ret:
b55cdb771fa421 Andy Grover       2012-02-03  716  	if (ret)
eff5f53bef75c0 Andy Grover       2009-02-24  717  		rds_rdma_free_op(op);
45de215356daa1 Gerd Rausch       2025-04-16  718  
45de215356daa1 Gerd Rausch       2025-04-16  719  	rds_stats_inc(s_send_rdma);
b55cdb771fa421 Andy Grover       2012-02-03  720  
b55cdb771fa421 Andy Grover       2012-02-03  721  	return ret;
eff5f53bef75c0 Andy Grover       2009-02-24  722  }
eff5f53bef75c0 Andy Grover       2009-02-24  723  

:::::: The code at line 596 was first introduced by commit
:::::: 45de215356daa1d42d3b51f53cd6833192451a11 net/rds: Rewind RDS to 8cbd9606a636 in order to rebase UEK commits on top of it

:::::: TO: Gerd Rausch <gerd.rausch@oracle.com>
:::::: CC: LUCI Bot <vijayendra.suman@oracle.com>

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-05-24  8:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-24  7:59 [jlayton:uek-localio 1790/2262] net/rds/rdma.c:596:27: warning: variable 'local_vec' set but not used kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox