drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:104:58: sparse: sparse: incorrect type in argument 2 (different address spaces)

From: kernel test robot
Date: Fri Dec 08 2023 - 16:58:35 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 081ed90a8c662455a79843add14857b356de37a4
commit: 894fa235eb4ca0bfa692dbe4932c2f940cdc8c1e powerpc: inline iomap accessors
date: 3 years ago
config: powerpc-randconfig-r113-20231106 (https://download.01.org/0day-ci/archive/20231209/202312090544.2hSoAyHo-lkp@xxxxxxxxx/config)
compiler: powerpc-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231209/202312090544.2hSoAyHo-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/202312090544.2hSoAyHo-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:104:58: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:104:58: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:104:58: sparse: got void *
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:110:58: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:110:58: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:110:58: sparse: got void *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:157:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *[assigned] emap @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:157:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:157:25: sparse: got void *[assigned] emap
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:174:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *map @@ got void [noderef] __iomem * @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:174:19: sparse: expected void *map
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:174:19: sparse: got void [noderef] __iomem *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:225:28: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __iomem * @@ got void *map @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:225:28: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:225:28: sparse: got void *map
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:233:28: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __iomem * @@ got void *map @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:233:28: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:233:28: sparse: got void *map
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:240:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *map @@ got void *map @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:240:21: sparse: expected void [noderef] __iomem *map
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:240:21: sparse: got void *map
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:327:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *[assigned] map @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:327:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:327:25: sparse: got void *[assigned] map

vim +104 drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c

07bbc1c5f49b64 Ben Skeggs 2017-11-01 100
be55287aa5ba68 Ben Skeggs 2017-11-01 101 static void
be55287aa5ba68 Ben Skeggs 2017-11-01 102 nv50_instobj_wr32(struct nvkm_memory *memory, u64 offset, u32 data)
be55287aa5ba68 Ben Skeggs 2017-11-01 103 {
be55287aa5ba68 Ben Skeggs 2017-11-01 @104 iowrite32_native(data, nv50_instobj(memory)->map + offset);
be55287aa5ba68 Ben Skeggs 2017-11-01 105 }
be55287aa5ba68 Ben Skeggs 2017-11-01 106
be55287aa5ba68 Ben Skeggs 2017-11-01 107 static u32
be55287aa5ba68 Ben Skeggs 2017-11-01 108 nv50_instobj_rd32(struct nvkm_memory *memory, u64 offset)
be55287aa5ba68 Ben Skeggs 2017-11-01 109 {
be55287aa5ba68 Ben Skeggs 2017-11-01 @110 return ioread32_native(nv50_instobj(memory)->map + offset);
be55287aa5ba68 Ben Skeggs 2017-11-01 111 }
be55287aa5ba68 Ben Skeggs 2017-11-01 112

:::::: The code at line 104 was first introduced by commit
:::::: be55287aa5ba6895e9d4d3ed2f08a1be7a065957 drm/nouveau/imem/nv50: embed nvkm_instobj directly into nv04_instobj

:::::: TO: Ben Skeggs <bskeggs@xxxxxxxxxx>
:::::: CC: Ben Skeggs <bskeggs@xxxxxxxxxx>

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