Hi Jason,

I love your patch! Yet something to improve:

[auto build test ERROR on vhost/linux-next]
[also build test ERROR on linux/master linus/master v5.5-rc6 next-20200117]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    
https://github.com/0day-ci/linux/commits/Jason-Wang/vDPA-support/20200117-170243
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git linux-next
config: i386-randconfig-d002-20200117 (attached as .config)
compiler: gcc-7 (Debian 7.5.0-3) 7.5.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>

All errors (new ones prefixed by >>):

   ld: drivers/vhost/vhost.o: in function `iotlb_alloc':
>> drivers/vhost/vhost.c:582: undefined reference to `vhost_iotlb_alloc'
>> ld: drivers/vhost/vhost.c:582: undefined reference to `vhost_iotlb_alloc'
   ld: drivers/vhost/vhost.o: in function `vhost_init_device_iotlb':
>> drivers/vhost/vhost.c:1667: undefined reference to `vhost_iotlb_free'
   ld: drivers/vhost/vhost.o: in function `iotlb_access_ok':
>> drivers/vhost/vhost.c:1271: undefined reference to `vhost_iotlb_itree_first'
   ld: drivers/vhost/vhost.o: in function `translate_desc':
   drivers/vhost/vhost.c:1981: undefined reference to `vhost_iotlb_itree_first'
   ld: drivers/vhost/vhost.o: in function `vhost_dev_cleanup':
   drivers/vhost/vhost.c:658: undefined reference to `vhost_iotlb_free'
>> ld: drivers/vhost/vhost.c:660: undefined reference to `vhost_iotlb_free'
   ld: drivers/vhost/vhost.o: in function `vhost_process_iotlb_msg':
>> drivers/vhost/vhost.c:1070: undefined reference to `vhost_iotlb_del_range'
>> ld: drivers/vhost/vhost.c:1056: undefined reference to 
>> `vhost_iotlb_add_range'
   ld: drivers/vhost/vhost.o: in function `iotlb_alloc':
>> drivers/vhost/vhost.c:582: undefined reference to `vhost_iotlb_alloc'
   ld: drivers/vhost/vhost.o: in function `vhost_set_memory':
>> drivers/vhost/vhost.c:1380: undefined reference to `vhost_iotlb_add_range'
   ld: drivers/vhost/vhost.c:1407: undefined reference to `vhost_iotlb_free'
   ld: drivers/vhost/vhost.c:1403: undefined reference to `vhost_iotlb_free'

vim +582 drivers/vhost/vhost.c

   579  
   580  static struct vhost_iotlb *iotlb_alloc(void)
   581  {
 > 582          return vhost_iotlb_alloc(max_iotlb_entries,
   583                                   VHOST_IOTLB_FLAG_RETIRE);
   584  }
   585  
   586  struct vhost_iotlb *vhost_dev_reset_owner_prepare(void)
   587  {
   588          return iotlb_alloc();
   589  }
   590  EXPORT_SYMBOL_GPL(vhost_dev_reset_owner_prepare);
   591  
   592  /* Caller should have device mutex */
   593  void vhost_dev_reset_owner(struct vhost_dev *dev, struct vhost_iotlb 
*umem)
   594  {
   595          int i;
   596  
   597          vhost_dev_cleanup(dev);
   598  
   599          dev->umem = umem;
   600          /* We don't need VQ locks below since vhost_dev_cleanup makes 
sure
   601           * VQs aren't running.
   602           */
   603          for (i = 0; i < dev->nvqs; ++i)
   604                  dev->vqs[i]->umem = umem;
   605  }
   606  EXPORT_SYMBOL_GPL(vhost_dev_reset_owner);
   607  
   608  void vhost_dev_stop(struct vhost_dev *dev)
   609  {
   610          int i;
   611  
   612          for (i = 0; i < dev->nvqs; ++i) {
   613                  if (dev->vqs[i]->kick && dev->vqs[i]->handle_kick) {
   614                          vhost_poll_stop(&dev->vqs[i]->poll);
   615                          vhost_poll_flush(&dev->vqs[i]->poll);
   616                  }
   617          }
   618  }
   619  EXPORT_SYMBOL_GPL(vhost_dev_stop);
   620  
   621  static void vhost_clear_msg(struct vhost_dev *dev)
   622  {
   623          struct vhost_msg_node *node, *n;
   624  
   625          spin_lock(&dev->iotlb_lock);
   626  
   627          list_for_each_entry_safe(node, n, &dev->read_list, node) {
   628                  list_del(&node->node);
   629                  kfree(node);
   630          }
   631  
   632          list_for_each_entry_safe(node, n, &dev->pending_list, node) {
   633                  list_del(&node->node);
   634                  kfree(node);
   635          }
   636  
   637          spin_unlock(&dev->iotlb_lock);
   638  }
   639  
   640  void vhost_dev_cleanup(struct vhost_dev *dev)
   641  {
   642          int i;
   643  
   644          for (i = 0; i < dev->nvqs; ++i) {
   645                  if (dev->vqs[i]->error_ctx)
   646                          eventfd_ctx_put(dev->vqs[i]->error_ctx);
   647                  if (dev->vqs[i]->kick)
   648                          fput(dev->vqs[i]->kick);
   649                  if (dev->vqs[i]->call_ctx)
   650                          eventfd_ctx_put(dev->vqs[i]->call_ctx);
   651                  vhost_vq_reset(dev, dev->vqs[i]);
   652          }
   653          vhost_dev_free_iovecs(dev);
   654          if (dev->log_ctx)
   655                  eventfd_ctx_put(dev->log_ctx);
   656          dev->log_ctx = NULL;
   657          /* No one will access memory at this point */
   658          vhost_iotlb_free(dev->umem);
   659          dev->umem = NULL;
 > 660          vhost_iotlb_free(dev->iotlb);
   661          dev->iotlb = NULL;
   662          vhost_clear_msg(dev);
   663          wake_up_interruptible_poll(&dev->wait, EPOLLIN | EPOLLRDNORM);
   664          WARN_ON(!llist_empty(&dev->work_list));
   665          if (dev->worker) {
   666                  kthread_stop(dev->worker);
   667                  dev->worker = NULL;
   668                  dev->kcov_handle = 0;
   669          }
   670          if (dev->mm)
   671                  mmput(dev->mm);
   672          dev->mm = NULL;
   673  }
   674  EXPORT_SYMBOL_GPL(vhost_dev_cleanup);
   675  

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org Intel Corporation

Attachment: .config.gz
Description: application/gzip

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to