Hi Xie,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.19-rc5 next-20220705]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/intel-lab-lkp/linux/commits/Xie-Yongji/VDUSE-Support-registering-userspace-memory-as-bounce-buffer/20220706-130802
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
e35e5b6f695d241ffb1d223207da58a1fbcdff4b
config: alpha-allyesconfig 
(https://download.01.org/0day-ci/archive/20220706/[email protected]/config)
compiler: alpha-linux-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://github.com/intel-lab-lkp/linux/commit/9be699264e4fede9c3be913b2d1003c260d9fa05
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review 
Xie-Yongji/VDUSE-Support-registering-userspace-memory-as-bounce-buffer/20220706-130802
        git checkout 9be699264e4fede9c3be913b2d1003c260d9fa05
        # 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=alpha SHELL=/bin/bash drivers/vdpa/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>

All warnings (new ones prefixed by >>):

   drivers/vdpa/vdpa_user/vduse_dev.c: In function 'vduse_dev_dereg_iotlb_mem':
   drivers/vdpa/vdpa_user/vduse_dev.c:949:9: error: implicit declaration of 
function 'vfree'; did you mean 'kvfree'? [-Werror=implicit-function-declaration]
     949 |         vfree(dev->iotlb_mem->pages);
         |         ^~~~~
         |         kvfree
   drivers/vdpa/vdpa_user/vduse_dev.c: In function 'vduse_dev_reg_iotlb_mem':
   drivers/vdpa/vdpa_user/vduse_dev.c:978:21: error: implicit declaration of 
function '__vmalloc'; did you mean '__kmalloc'? 
[-Werror=implicit-function-declaration]
     978 |         page_list = __vmalloc(array_size(npages, sizeof(struct page 
*)),
         |                     ^~~~~~~~~
         |                     __kmalloc
>> drivers/vdpa/vdpa_user/vduse_dev.c:978:19: warning: assignment to 'struct 
>> page **' from 'int' makes pointer from integer without a cast 
>> [-Wint-conversion]
     978 |         page_list = __vmalloc(array_size(npages, sizeof(struct page 
*)),
         |                   ^
   cc1: some warnings being treated as errors


vim +978 drivers/vdpa/vdpa_user/vduse_dev.c

   957  
   958  static int vduse_dev_reg_iotlb_mem(struct vduse_dev *dev,
   959                                     u64 iova, u64 uaddr, u64 size)
   960  {
   961          struct page **page_list = NULL;
   962          struct vduse_iotlb_mem *mem = NULL;
   963          long pinned = 0;
   964          unsigned long npages, lock_limit;
   965          int ret;
   966  
   967          if (size != dev->domain->bounce_size ||
   968              iova != 0 || uaddr & ~PAGE_MASK)
   969                  return -EINVAL;
   970  
   971          mutex_lock(&dev->mem_lock);
   972          ret = -EEXIST;
   973          if (dev->iotlb_mem)
   974                  goto unlock;
   975  
   976          ret = -ENOMEM;
   977          npages = size >> PAGE_SHIFT;
 > 978          page_list = __vmalloc(array_size(npages, sizeof(struct page *)),
   979                                GFP_KERNEL_ACCOUNT);
   980          mem = kzalloc(sizeof(*mem), GFP_KERNEL);
   981          if (!page_list || !mem)
   982                  goto unlock;
   983  
   984          mmap_read_lock(current->mm);
   985  
   986          lock_limit = PFN_DOWN(rlimit(RLIMIT_MEMLOCK));
   987          if (npages + atomic64_read(&current->mm->pinned_vm) > 
lock_limit)
   988                  goto out;
   989  
   990          pinned = pin_user_pages(uaddr, npages, FOLL_LONGTERM | 
FOLL_WRITE,
   991                                  page_list, NULL);
   992          if (pinned != npages) {
   993                  ret = pinned < 0 ? pinned : -ENOMEM;
   994                  goto out;
   995          }
   996  
   997          ret = vduse_domain_add_user_bounce_pages(dev->domain,
   998                                                   page_list, pinned);
   999          if (ret)
  1000                  goto out;
  1001  
  1002          atomic64_add(npages, &current->mm->pinned_vm);
  1003  
  1004          mem->pages = page_list;
  1005          mem->npages = pinned;
  1006          mem->iova = iova;
  1007          mem->mm = current->mm;
  1008          mmgrab(current->mm);
  1009  
  1010          dev->iotlb_mem = mem;
  1011  out:
  1012          if (ret && pinned > 0)
  1013                  unpin_user_pages(page_list, pinned);
  1014  
  1015          mmap_read_unlock(current->mm);
  1016  unlock:
  1017          if (ret) {
  1018                  vfree(page_list);
  1019                  kfree(mem);
  1020          }
  1021          mutex_unlock(&dev->mem_lock);
  1022          return ret;
  1023  }
  1024  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to