Re: [PATCH] vdpa: bypass waking up vhost_woker for vdpa vq kick

From: kbuild test robot
Date: Tue May 26 2020 - 18:54:48 EST


Hi Zhu,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on vhost/linux-next]
[also build test WARNING on v5.7-rc7 next-20200526]
[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/Zhu-Lingshan/vdpa-bypass-waking-up-vhost_woker-for-vdpa-vq-kick/20200526-133819
base: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git linux-next
config: alpha-allyesconfig (attached as .config)
compiler: alpha-linux-gcc (GCC) 9.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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=alpha

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>, old ones prefixed by <<):

>> drivers/vhost/vdpa.c:290:6: warning: no previous prototype for 'vhost_vdpa_poll_stop' [-Wmissing-prototypes]
290 | void vhost_vdpa_poll_stop(struct vhost_virtqueue *vq)
| ^~~~~~~~~~~~~~~~~~~~
>> drivers/vhost/vdpa.c:295:5: warning: no previous prototype for 'vhost_vdpa_poll_start' [-Wmissing-prototypes]
295 | int vhost_vdpa_poll_start(struct vhost_virtqueue *vq)
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/vhost/vdpa.c:750:6: warning: no previous prototype for 'vhost_vdpa_poll_init' [-Wmissing-prototypes]
750 | void vhost_vdpa_poll_init(struct vhost_dev *dev)
| ^~~~~~~~~~~~~~~~~~~~

vim +/vhost_vdpa_poll_stop +290 drivers/vhost/vdpa.c

276
277 static long vhost_vdpa_get_vring_num(struct vhost_vdpa *v, u16 __user *argp)
278 {
279 struct vdpa_device *vdpa = v->vdpa;
280 const struct vdpa_config_ops *ops = vdpa->config;
281 u16 num;
282
283 num = ops->get_vq_num_max(vdpa);
284
285 if (copy_to_user(argp, &num, sizeof(num)))
286 return -EFAULT;
287
288 return 0;
289 }
> 290 void vhost_vdpa_poll_stop(struct vhost_virtqueue *vq)
291 {
292 vhost_poll_stop(&vq->poll);
293 }
294
> 295 int vhost_vdpa_poll_start(struct vhost_virtqueue *vq)
296 {
297 struct vhost_poll *poll = &vq->poll;
298 struct file *file = vq->kick;
299 __poll_t mask;
300
301
302 if (poll->wqh)
303 return 0;
304
305 mask = vfs_poll(file, &poll->table);
306 if (mask)
307 vq->handle_kick(&vq->poll.work);
308 if (mask & EPOLLERR) {
309 vhost_poll_stop(poll);
310 return -EINVAL;
311 }
312
313 return 0;
314 }
315

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip