[PATCH] drm/[amdgpu|radeon]: fix memset on io mem

kernel test robot lkp at intel.com
Wed Dec 16 13:00:57 UTC 2020


Hi Chen,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.10 next-20201215]
[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/Chen-Li/drm-amdgpu-radeon-fix-memset-on-io-mem/20201216-165835
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git d01e7f10dae29eba0f9ada82b65d24e035d5b2f9
config: x86_64-randconfig-a002-20201216 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 71601d2ac9954cb59c443cb3ae442cb106df35d4)
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
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://github.com/0day-ci/linux/commit/201257d71c519bef0966e555d95bf820512f5a34
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Chen-Li/drm-amdgpu-radeon-fix-memset-on-io-mem/20201216-165835
        git checkout 201257d71c519bef0966e555d95bf820512f5a34
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

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

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/radeon/radeon_uvd.c:159:6: warning: format specifies type 'unsigned short' but the argument has type 'unsigned int' [-Wformat]
                                    version_major, version_minor, family_id);
                                    ^~~~~~~~~~~~~
   include/drm/drm_print.h:484:29: note: expanded from macro 'DRM_INFO'
           _DRM_PRINTK(, INFO, fmt, ##__VA_ARGS__)
                               ~~~    ^~~~~~~~~~~
   include/drm/drm_print.h:481:53: note: expanded from macro '_DRM_PRINTK'
           printk##once(KERN_##level "[" DRM_NAME "] " fmt, ##__VA_ARGS__)
                                                       ~~~    ^~~~~~~~~~~
   drivers/gpu/drm/radeon/radeon_uvd.c:159:21: warning: format specifies type 'unsigned short' but the argument has type 'unsigned int' [-Wformat]
                                    version_major, version_minor, family_id);
                                                   ^~~~~~~~~~~~~
   include/drm/drm_print.h:484:29: note: expanded from macro 'DRM_INFO'
           _DRM_PRINTK(, INFO, fmt, ##__VA_ARGS__)
                               ~~~    ^~~~~~~~~~~
   include/drm/drm_print.h:481:53: note: expanded from macro '_DRM_PRINTK'
           printk##once(KERN_##level "[" DRM_NAME "] " fmt, ##__VA_ARGS__)
                                                       ~~~    ^~~~~~~~~~~
   drivers/gpu/drm/radeon/radeon_uvd.c:159:36: warning: format specifies type 'unsigned short' but the argument has type 'unsigned int' [-Wformat]
                                    version_major, version_minor, family_id);
                                                                  ^~~~~~~~~
   include/drm/drm_print.h:484:29: note: expanded from macro 'DRM_INFO'
           _DRM_PRINTK(, INFO, fmt, ##__VA_ARGS__)
                               ~~~    ^~~~~~~~~~~
   include/drm/drm_print.h:481:53: note: expanded from macro '_DRM_PRINTK'
           printk##once(KERN_##level "[" DRM_NAME "] " fmt, ##__VA_ARGS__)
                                                       ~~~    ^~~~~~~~~~~
>> drivers/gpu/drm/radeon/radeon_uvd.c:805:17: warning: variable 'i' is uninitialized when used here [-Wuninitialized]
           memset_io(&msg[i], 0x0, 1013 * sizeof(uint32_t));
                          ^
   drivers/gpu/drm/radeon/radeon_uvd.c:787:10: note: initialize the variable 'i' to silence this warning
           int r, i;
                   ^
                    = 0
   drivers/gpu/drm/radeon/radeon_uvd.c:833:17: warning: variable 'i' is uninitialized when used here [-Wuninitialized]
           memset_io(&msg[i], 0x0, 1020 * sizeof(uint32_t));
                          ^
   drivers/gpu/drm/radeon/radeon_uvd.c:822:10: note: initialize the variable 'i' to silence this warning
           int r, i;
                   ^
                    = 0
   5 warnings generated.


vim +/i +805 drivers/gpu/drm/radeon/radeon_uvd.c

   771	
   772	/*
   773	 * multiple fence commands without any stream commands in between can
   774	 * crash the vcpu so just try to emmit a dummy create/destroy msg to
   775	 * avoid this
   776	 */
   777	int radeon_uvd_get_create_msg(struct radeon_device *rdev, int ring,
   778				      uint32_t handle, struct radeon_fence **fence)
   779	{
   780		/* we use the last page of the vcpu bo for the UVD message */
   781		uint64_t offs = radeon_bo_size(rdev->uvd.vcpu_bo) -
   782			RADEON_GPU_PAGE_SIZE;
   783	
   784		uint32_t *msg = rdev->uvd.cpu_addr + offs;
   785		uint64_t addr = rdev->uvd.gpu_addr + offs;
   786	
   787		int r, i;
   788	
   789		r = radeon_bo_reserve(rdev->uvd.vcpu_bo, true);
   790		if (r)
   791			return r;
   792	
   793		/* stitch together an UVD create msg */
   794		msg[0] = cpu_to_le32(0x00000de4);
   795		msg[1] = cpu_to_le32(0x00000000);
   796		msg[2] = cpu_to_le32(handle);
   797		msg[3] = cpu_to_le32(0x00000000);
   798		msg[4] = cpu_to_le32(0x00000000);
   799		msg[5] = cpu_to_le32(0x00000000);
   800		msg[6] = cpu_to_le32(0x00000000);
   801		msg[7] = cpu_to_le32(0x00000780);
   802		msg[8] = cpu_to_le32(0x00000440);
   803		msg[9] = cpu_to_le32(0x00000000);
   804		msg[10] = cpu_to_le32(0x01b37000);
 > 805		memset_io(&msg[i], 0x0, 1013 * sizeof(uint32_t));
   806	
   807		r = radeon_uvd_send_msg(rdev, ring, addr, fence);
   808		radeon_bo_unreserve(rdev->uvd.vcpu_bo);
   809		return r;
   810	}
   811	

---
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: 40358 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20201216/9c565f78/attachment-0001.gz>


More information about the dri-devel mailing list