[PATCH] drm/virtio: delay pinning the pages till first use

kernel test robot lkp at intel.com
Thu Nov 4 12:44:40 UTC 2021


Hi Maksym,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm/drm-next]
[also build test ERROR on next-20211104]
[cannot apply to v5.15]
[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/0day-ci/linux/commits/Maksym-Wezdecki/drm-virtio-delay-pinning-the-pages-till-first-use/20211102-193430
base:   git://anongit.freedesktop.org/drm/drm drm-next
config: i386-buildonly-randconfig-r002-20211101 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 264d3b6d4e08401c5b50a85bd76e80b3461d77e6)
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/0day-ci/linux/commit/1795d2fd78a334a37a02dba76ac1e314cf122467
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Maksym-Wezdecki/drm-virtio-delay-pinning-the-pages-till-first-use/20211102-193430
        git checkout 1795d2fd78a334a37a02dba76ac1e314cf122467
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=i386 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

>> drivers/gpu/drm/virtio/virtgpu_object.c:254:11: error: variable 'ents' is uninitialized when used here [-Werror,-Wuninitialized]
                                                       ents, nents);
                                                       ^~~~
   drivers/gpu/drm/virtio/virtgpu_object.c:219:35: note: initialize the variable 'ents' to silence this warning
           struct virtio_gpu_mem_entry *ents;
                                            ^
                                             = NULL
>> drivers/gpu/drm/virtio/virtgpu_object.c:254:17: error: variable 'nents' is uninitialized when used here [-Werror,-Wuninitialized]
                                                       ents, nents);
                                                             ^~~~~
   drivers/gpu/drm/virtio/virtgpu_object.c:220:20: note: initialize the variable 'nents' to silence this warning
           unsigned int nents;
                             ^
                              = 0
   2 errors generated.


vim +/ents +254 drivers/gpu/drm/virtio/virtgpu_object.c

2f2aa13724d568 Gerd Hoffmann   2020-02-07  210  
dc5698e80cf724 Dave Airlie     2013-09-09  211  int virtio_gpu_object_create(struct virtio_gpu_device *vgdev,
4441235f9566e6 Gerd Hoffmann   2019-03-18  212  			     struct virtio_gpu_object_params *params,
530b28426a94b8 Gerd Hoffmann   2019-03-18  213  			     struct virtio_gpu_object **bo_ptr,
530b28426a94b8 Gerd Hoffmann   2019-03-18  214  			     struct virtio_gpu_fence *fence)
dc5698e80cf724 Dave Airlie     2013-09-09  215  {
e2324300f427ff Gerd Hoffmann   2019-08-29  216  	struct virtio_gpu_object_array *objs = NULL;
c66df701e783bc Gerd Hoffmann   2019-08-29  217  	struct drm_gem_shmem_object *shmem_obj;
dc5698e80cf724 Dave Airlie     2013-09-09  218  	struct virtio_gpu_object *bo;
2f2aa13724d568 Gerd Hoffmann   2020-02-07  219  	struct virtio_gpu_mem_entry *ents;
2f2aa13724d568 Gerd Hoffmann   2020-02-07  220  	unsigned int nents;
dc5698e80cf724 Dave Airlie     2013-09-09  221  	int ret;
dc5698e80cf724 Dave Airlie     2013-09-09  222  
dc5698e80cf724 Dave Airlie     2013-09-09  223  	*bo_ptr = NULL;
dc5698e80cf724 Dave Airlie     2013-09-09  224  
c66df701e783bc Gerd Hoffmann   2019-08-29  225  	params->size = roundup(params->size, PAGE_SIZE);
c66df701e783bc Gerd Hoffmann   2019-08-29  226  	shmem_obj = drm_gem_shmem_create(vgdev->ddev, params->size);
c66df701e783bc Gerd Hoffmann   2019-08-29  227  	if (IS_ERR(shmem_obj))
c66df701e783bc Gerd Hoffmann   2019-08-29  228  		return PTR_ERR(shmem_obj);
c66df701e783bc Gerd Hoffmann   2019-08-29  229  	bo = gem_to_virtio_gpu_obj(&shmem_obj->base);
dc5698e80cf724 Dave Airlie     2013-09-09  230  
556c62e85f9b97 Matthew Wilcox  2018-10-30  231  	ret = virtio_gpu_resource_id_get(vgdev, &bo->hw_res_handle);
e2324300f427ff Gerd Hoffmann   2019-08-29  232  	if (ret < 0)
e2324300f427ff Gerd Hoffmann   2019-08-29  233  		goto err_free_gem;
e2324300f427ff Gerd Hoffmann   2019-08-29  234  
530b28426a94b8 Gerd Hoffmann   2019-03-18  235  	bo->dumb = params->dumb;
530b28426a94b8 Gerd Hoffmann   2019-03-18  236  
e2324300f427ff Gerd Hoffmann   2019-08-29  237  	if (fence) {
e2324300f427ff Gerd Hoffmann   2019-08-29  238  		ret = -ENOMEM;
e2324300f427ff Gerd Hoffmann   2019-08-29  239  		objs = virtio_gpu_array_alloc(1);
e2324300f427ff Gerd Hoffmann   2019-08-29  240  		if (!objs)
e2324300f427ff Gerd Hoffmann   2019-08-29  241  			goto err_put_id;
c66df701e783bc Gerd Hoffmann   2019-08-29  242  		virtio_gpu_array_add_obj(objs, &bo->base.base);
e2324300f427ff Gerd Hoffmann   2019-08-29  243  
e2324300f427ff Gerd Hoffmann   2019-08-29  244  		ret = virtio_gpu_array_lock_resv(objs);
e2324300f427ff Gerd Hoffmann   2019-08-29  245  		if (ret != 0)
e2324300f427ff Gerd Hoffmann   2019-08-29  246  			goto err_put_objs;
e2324300f427ff Gerd Hoffmann   2019-08-29  247  	}
e2324300f427ff Gerd Hoffmann   2019-08-29  248  
897b4d1acaf563 Gerd Hoffmann   2020-09-23  249  	if (params->blob) {
3389082bb98296 Vivek Kasireddy 2021-04-12  250  		if (params->blob_mem == VIRTGPU_BLOB_MEM_GUEST)
3389082bb98296 Vivek Kasireddy 2021-04-12  251  			bo->guest_blob = true;
3389082bb98296 Vivek Kasireddy 2021-04-12  252  
897b4d1acaf563 Gerd Hoffmann   2020-09-23  253  		virtio_gpu_cmd_resource_create_blob(vgdev, bo, params,
897b4d1acaf563 Gerd Hoffmann   2020-09-23 @254  						    ents, nents);
897b4d1acaf563 Gerd Hoffmann   2020-09-23  255  	} else if (params->virgl) {
30172efbfb842c Gurchetan Singh 2020-09-23  256  		virtio_gpu_cmd_resource_create_3d(vgdev, bo, params,
30172efbfb842c Gurchetan Singh 2020-09-23  257  						  objs, fence);
30172efbfb842c Gurchetan Singh 2020-09-23  258  	} else {
1795d2fd78a334 mwezdeck        2021-11-02  259  		ret = virtio_gpu_object_shmem_init(vgdev, bo, &ents, &nents);
1795d2fd78a334 mwezdeck        2021-11-02  260  		if (ret != 0) {
1795d2fd78a334 mwezdeck        2021-11-02  261  			virtio_gpu_array_put_free(objs);
1795d2fd78a334 mwezdeck        2021-11-02  262  			virtio_gpu_free_object(&shmem_obj->base);
1795d2fd78a334 mwezdeck        2021-11-02  263  			return ret;
1795d2fd78a334 mwezdeck        2021-11-02  264  		}
30172efbfb842c Gurchetan Singh 2020-09-23  265  		virtio_gpu_cmd_create_resource(vgdev, bo, params,
30172efbfb842c Gurchetan Singh 2020-09-23  266  					       objs, fence);
c76d4ab764adae Gurchetan Singh 2020-04-01  267  		virtio_gpu_object_attach(vgdev, bo, ents, nents);
30172efbfb842c Gurchetan Singh 2020-09-23  268  	}
dc5698e80cf724 Dave Airlie     2013-09-09  269  
dc5698e80cf724 Dave Airlie     2013-09-09  270  	*bo_ptr = bo;
dc5698e80cf724 Dave Airlie     2013-09-09  271  	return 0;
e2324300f427ff Gerd Hoffmann   2019-08-29  272  
e2324300f427ff Gerd Hoffmann   2019-08-29  273  err_put_objs:
e2324300f427ff Gerd Hoffmann   2019-08-29  274  	virtio_gpu_array_put_free(objs);
e2324300f427ff Gerd Hoffmann   2019-08-29  275  err_put_id:
e2324300f427ff Gerd Hoffmann   2019-08-29  276  	virtio_gpu_resource_id_put(vgdev, bo->hw_res_handle);
e2324300f427ff Gerd Hoffmann   2019-08-29  277  err_free_gem:
c66df701e783bc Gerd Hoffmann   2019-08-29  278  	drm_gem_shmem_free_object(&shmem_obj->base);
e2324300f427ff Gerd Hoffmann   2019-08-29  279  	return ret;
dc5698e80cf724 Dave Airlie     2013-09-09  280  }
1795d2fd78a334 mwezdeck        2021-11-02  281  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 41975 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20211104/b7778fa0/attachment-0001.gz>


More information about the dri-devel mailing list