* [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