drivers/gpu/drm/loongson/lsdc_benchmark.c:27:35: sparse: sparse: incorrect type in argument 1 (different address spaces)

From: kernel test robot
Date: Sat Sep 09 2023 - 16:20:50 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 6099776f9f268e61fe5ecd721f994a8cfce5306f
commit: f39db26c54281da6a785259498ca74b5e470476f drm: Add kms driver for loongson display controller
date: 10 weeks ago
config: i386-randconfig-061-20230909 (https://download.01.org/0day-ci/archive/20230910/202309100448.LTa4vVqD-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230910/202309100448.LTa4vVqD-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202309100448.LTa4vVqD-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/loongson/lsdc_benchmark.c:27:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got void *kptr @@
drivers/gpu/drm/loongson/lsdc_benchmark.c:27:35: sparse: expected void volatile [noderef] __iomem *
drivers/gpu/drm/loongson/lsdc_benchmark.c:27:35: sparse: got void *kptr
>> drivers/gpu/drm/loongson/lsdc_benchmark.c:42:51: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const volatile [noderef] __iomem * @@ got void *kptr @@
drivers/gpu/drm/loongson/lsdc_benchmark.c:42:51: sparse: expected void const volatile [noderef] __iomem *
drivers/gpu/drm/loongson/lsdc_benchmark.c:42:51: sparse: got void *kptr

vim +27 drivers/gpu/drm/loongson/lsdc_benchmark.c

12
13 typedef void (*lsdc_copy_proc_t)(struct lsdc_bo *src_bo,
14 struct lsdc_bo *dst_bo,
15 unsigned int size,
16 int n);
17
18 static void lsdc_copy_gtt_to_vram_cpu(struct lsdc_bo *src_bo,
19 struct lsdc_bo *dst_bo,
20 unsigned int size,
21 int n)
22 {
23 lsdc_bo_kmap(src_bo);
24 lsdc_bo_kmap(dst_bo);
25
26 while (n--)
> 27 memcpy_toio(dst_bo->kptr, src_bo->kptr, size);
28
29 lsdc_bo_kunmap(src_bo);
30 lsdc_bo_kunmap(dst_bo);
31 }
32
33 static void lsdc_copy_vram_to_gtt_cpu(struct lsdc_bo *src_bo,
34 struct lsdc_bo *dst_bo,
35 unsigned int size,
36 int n)
37 {
38 lsdc_bo_kmap(src_bo);
39 lsdc_bo_kmap(dst_bo);
40
41 while (n--)
> 42 memcpy_fromio(dst_bo->kptr, src_bo->kptr, size);
43
44 lsdc_bo_kunmap(src_bo);
45 lsdc_bo_kunmap(dst_bo);
46 }
47

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki