All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Yishai Hadas <yishaih@nvidia.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Leon Romanovsky <leon@kernel.org>
Subject: [leon-rdma:rdma-next 19/27] drivers/vfio/vfio_main.c:1658: undefined reference to `interval_tree_iter_first'
Date: Mon, 11 Jul 2022 23:23:54 +0800	[thread overview]
Message-ID: <202207112304.RBht9L6V-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git rdma-next
head:   325f0cb55fe7505ffc12020edf66e91f1bdbe021
commit: de08f6b555c0b4687890265b2f2358f69f28512a [19/27] vfio: Introduce the DMA logging feature support
config: arm-randconfig-r035-20220710 (https://download.01.org/0day-ci/archive/20220711/202207112304.RBht9L6V-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git/commit/?id=de08f6b555c0b4687890265b2f2358f69f28512a
        git remote add leon-rdma https://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git
        git fetch --no-tags leon-rdma rdma-next
        git checkout de08f6b555c0b4687890265b2f2358f69f28512a
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   arm-linux-gnueabi-ld: drivers/vfio/vfio_main.o: in function `vfio_ioctl_device_feature_logging_start':
>> drivers/vfio/vfio_main.c:1658: undefined reference to `interval_tree_iter_first'
>> arm-linux-gnueabi-ld: drivers/vfio/vfio_main.c:1664: undefined reference to `interval_tree_insert'


vim +1658 drivers/vfio/vfio_main.c

  1607	
  1608	static int
  1609	vfio_ioctl_device_feature_logging_start(struct vfio_device *device,
  1610						u32 flags, void __user *arg,
  1611						size_t argsz)
  1612	{
  1613		size_t minsz =
  1614			offsetofend(struct vfio_device_feature_dma_logging_control,
  1615				    ranges);
  1616		struct vfio_device_feature_dma_logging_range __user *ranges;
  1617		struct vfio_device_feature_dma_logging_control control;
  1618		struct vfio_device_feature_dma_logging_range range;
  1619		struct rb_root_cached root = RB_ROOT_CACHED;
  1620		struct interval_tree_node *nodes;
  1621		u32 nnodes;
  1622		int i, ret;
  1623	
  1624		if (!device->log_ops)
  1625			return -ENOTTY;
  1626	
  1627		ret = vfio_check_feature(flags, argsz,
  1628					 VFIO_DEVICE_FEATURE_SET,
  1629					 sizeof(control));
  1630		if (ret != 1)
  1631			return ret;
  1632	
  1633		if (copy_from_user(&control, arg, minsz))
  1634			return -EFAULT;
  1635	
  1636		nnodes = control.num_ranges;
  1637		if (!nnodes || nnodes > LOG_MAX_RANGES)
  1638			return -EINVAL;
  1639	
  1640		ranges = u64_to_user_ptr(control.ranges);
  1641		nodes = kmalloc_array(nnodes, sizeof(struct interval_tree_node),
  1642				      GFP_KERNEL);
  1643		if (!nodes)
  1644			return -ENOMEM;
  1645	
  1646		for (i = 0; i < nnodes; i++) {
  1647			if (copy_from_user(&range, &ranges[i], sizeof(range))) {
  1648				ret = -EFAULT;
  1649				goto end;
  1650			}
  1651			if (!IS_ALIGNED(range.iova, control.page_size) ||
  1652			    !IS_ALIGNED(range.length, control.page_size)) {
  1653				ret = -EINVAL;
  1654				goto end;
  1655			}
  1656			nodes[i].start = range.iova;
  1657			nodes[i].last = range.iova + range.length - 1;
> 1658			if (interval_tree_iter_first(&root, nodes[i].start,
  1659						     nodes[i].last)) {
  1660				/* Range overlapping */
  1661				ret = -EINVAL;
  1662				goto end;
  1663			}
> 1664			interval_tree_insert(nodes + i, &root);
  1665		}
  1666	
  1667		ret = device->log_ops->log_start(device, &root, nnodes,
  1668						 &control.page_size);
  1669		if (ret)
  1670			goto end;
  1671	
  1672		if (copy_to_user(arg, &control, sizeof(control))) {
  1673			ret = -EFAULT;
  1674			device->log_ops->log_stop(device);
  1675		}
  1676	
  1677	end:
  1678		kfree(nodes);
  1679		return ret;
  1680	}
  1681	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

                 reply	other threads:[~2022-07-11 15:24 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=202207112304.RBht9L6V-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    --cc=leon@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=yishaih@nvidia.com \
    /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.