Messages in this thread | | | Date | Mon, 11 Jul 2022 23:23:54 +0800 | From | kernel test robot <> | Subject | [leon-rdma:rdma-next 19/27] drivers/vfio/vfio_main.c:1658: undefined reference to `interval_tree_iter_first' |
| |
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
| |