[PATCH 3/3] drm/udl: Switch to SHMEM

kbuild test robot lkp at intel.com
Thu Oct 31 12:53:29 UTC 2019


Hi Thomas,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.4-rc5 next-20191030]
[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/Thomas-Zimmermann/drm-udl-Convert-to-SHMEM/20191030-065855
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 23fdb198ae81f47a574296dab5167c5e136a02ba
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-dirty
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

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


sparse warnings: (new ones prefixed by >>)

>> drivers/gpu/drm/udl/udl_fb.c:406:27: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected char [noderef] <asn:2> *screen_base @@    got oderef] <asn:2> *screen_base @@
   drivers/gpu/drm/udl/udl_fb.c:406:27: sparse:    expected char [noderef] <asn:2> *screen_base
>> drivers/gpu/drm/udl/udl_fb.c:406:27: sparse:    got void *[assigned] vaddr
--
>> drivers/gpu/drm/udl/udl_gem.c:41:34: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected struct file *filp @@    got struct drmstruct file *filp @@
>> drivers/gpu/drm/udl/udl_gem.c:41:34: sparse:    expected struct file *filp
>> drivers/gpu/drm/udl/udl_gem.c:41:34: sparse:    got struct drm_gem_object *obj
   drivers/gpu/drm/udl/udl_gem.c:61:10: sparse: sparse: unknown field name in initializer

vim +406 drivers/gpu/drm/udl/udl_fb.c

   350	
   351	
   352	static int udlfb_create(struct drm_fb_helper *helper,
   353				struct drm_fb_helper_surface_size *sizes)
   354	{
   355		struct udl_fbdev *ufbdev =
   356			container_of(helper, struct udl_fbdev, helper);
   357		struct drm_device *dev = ufbdev->helper.dev;
   358		struct fb_info *info;
   359		struct drm_framebuffer *fb;
   360		struct drm_mode_fb_cmd2 mode_cmd;
   361		struct drm_gem_shmem_object *shmem;
   362		void *vaddr;
   363		uint32_t size;
   364		int ret = 0;
   365	
   366		if (sizes->surface_bpp == 24)
   367			sizes->surface_bpp = 32;
   368	
   369		mode_cmd.width = sizes->surface_width;
   370		mode_cmd.height = sizes->surface_height;
   371		mode_cmd.pitches[0] = mode_cmd.width * ((sizes->surface_bpp + 7) / 8);
   372	
   373		mode_cmd.pixel_format = drm_mode_legacy_fb_format(sizes->surface_bpp,
   374								  sizes->surface_depth);
   375	
   376		size = mode_cmd.pitches[0] * mode_cmd.height;
   377		size = ALIGN(size, PAGE_SIZE);
   378	
   379		shmem = drm_gem_shmem_create(dev, size);
   380		if (IS_ERR(shmem)) {
   381			ret = PTR_ERR(shmem);
   382			goto out;
   383		}
   384	
   385		vaddr = drm_gem_shmem_vmap(&shmem->base);
   386		if (IS_ERR(vaddr)) {
   387			ret = PTR_ERR(vaddr);
   388			DRM_ERROR("failed to vmap fb\n");
   389			goto out_gfree;
   390		}
   391	
   392		info = drm_fb_helper_alloc_fbi(helper);
   393		if (IS_ERR(info)) {
   394			ret = PTR_ERR(info);
   395			goto out_gfree;
   396		}
   397	
   398		ret = udl_framebuffer_init(dev, &ufbdev->ufb, &mode_cmd, shmem);
   399		if (ret)
   400			goto out_gfree;
   401	
   402		fb = &ufbdev->ufb.base;
   403	
   404		ufbdev->helper.fb = fb;
   405	
 > 406		info->screen_base = vaddr;
   407		info->fix.smem_len = size;
   408		info->fix.smem_start = (unsigned long)vaddr;
   409	
   410		info->fbops = &udlfb_ops;
   411		drm_fb_helper_fill_info(info, &ufbdev->helper, sizes);
   412	
   413		DRM_DEBUG_KMS("allocated %dx%d vmal %p\n",
   414			      fb->width, fb->height,
   415			      ufbdev->ufb.shmem->vaddr);
   416	
   417		return ret;
   418	out_gfree:
   419		drm_gem_object_put_unlocked(&ufbdev->ufb.shmem->base);
   420	out:
   421		return ret;
   422	}
   423	

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


More information about the dri-devel mailing list