drivers/gpu/drm/nouveau/nvif/chan.c:11:32: sparse: sparse: cast removes address space '__iomem' of expression
From: kernel test robot
Date: Thu Apr 30 2026 - 04:04:14 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: e75a43c7cec459a07d91ed17de4de13ede2b7758
commit: d1fb887a08d8a21284e9a4be476f103353a32e7a drm/nouveau/nv50-: separate CHANNEL_GPFIFO handling out from CHANNEL_DMA
date: 12 months ago
config: sparc64-randconfig-r132-20260430 (https://download.01.org/0day-ci/archive/20260430/202604301541.JiYvVcb9-lkp@xxxxxxxxx/config)
compiler: sparc64-linux-gcc (GCC) 8.5.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260430/202604301541.JiYvVcb9-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
| Fixes: d1fb887a08d8 ("drm/nouveau/nv50-: separate CHANNEL_GPFIFO handling out from CHANNEL_DMA")
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604301541.JiYvVcb9-lkp@xxxxxxxxx/
sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/nouveau/nvif/chan.c:11:32: sparse: sparse: cast removes address space '__iomem' of expression
drivers/gpu/drm/nouveau/nvif/chan.c:71:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *ptr @@ got void *userd @@
drivers/gpu/drm/nouveau/nvif/chan.c:71:29: sparse: expected void [noderef] __iomem *ptr
drivers/gpu/drm/nouveau/nvif/chan.c:71:29: sparse: got void *userd
drivers/gpu/drm/nouveau/nvif/chan.c:73:30: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *ptr @@ got void *gpfifo @@
drivers/gpu/drm/nouveau/nvif/chan.c:73:30: sparse: expected void [noderef] __iomem *ptr
drivers/gpu/drm/nouveau/nvif/chan.c:73:30: sparse: got void *gpfifo
drivers/gpu/drm/nouveau/nvif/chan.c:77:39: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *ptr @@ got void *push @@
drivers/gpu/drm/nouveau/nvif/chan.c:77:39: sparse: expected void [noderef] __iomem *ptr
drivers/gpu/drm/nouveau/nvif/chan.c:77:39: sparse: got void *push
drivers/gpu/drm/nouveau/nvif/chan.c:89:32: sparse: sparse: cast removes address space '__iomem' of expression
drivers/gpu/drm/nouveau/nvif/chan.c:123:22: sparse: sparse: cast removes address space '__iomem' of expression
vim +/__iomem +11 drivers/gpu/drm/nouveau/nvif/chan.c
6
7 static void
8 nvif_chan_gpfifo_push_kick(struct nvif_push *push)
9 {
10 struct nvif_chan *chan = container_of(push, typeof(*chan), push);
> 11 u32 put = push->bgn - (u32 *)chan->push.mem.object.map.ptr;
12 u32 cnt = push->cur - push->bgn;
13
14 chan->func->gpfifo.push(chan, true, chan->push.addr + (put << 2), cnt << 2, false);
15 chan->func->gpfifo.kick(chan);
16 }
17
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki