drivers/gpu/drm/qxl/qxl_object.c:172:29: sparse: sparse: cast removes address space '__iomem' of expression
From: kernel test robot
Date: Tue Nov 09 2021 - 19:19:12 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: cb690f5238d71f543f4ce874aa59237cf53a877c
commit: 49a3f51dfeeecb52c5aa28c5cb9592fe5e39bf95 drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends
date: 1 year ago
config: riscv-randconfig-s032-20211109 (attached as .config)
compiler: riscv32-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49a3f51dfeeecb52c5aa28c5cb9592fe5e39bf95
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 49a3f51dfeeecb52c5aa28c5cb9592fe5e39bf95
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=riscv SHELL=/bin/bash arch/riscv/kernel/ drivers/clk/qcom/ drivers/clocksource/ drivers/firmware/arm_scmi/ drivers/firmware/efi/test/ drivers/gpu/drm/kmb/ drivers/gpu/drm/qxl/ drivers/mmc/host/ drivers/mtd/nand/onenand/ drivers/mtd/nand/raw/ drivers/pci/endpoint/functions/ drivers/phy/marvell/ drivers/pwm/ drivers/soc/bcm/bcm63xx/ drivers/staging/vc04_services/ drivers/uio/ drivers/usb/gadget/function/ drivers/video/fbdev/ fs/ kernel/ lib/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/qxl/qxl_object.c:172:29: sparse: sparse: cast removes address space '__iomem' of expression
drivers/gpu/drm/qxl/qxl_object.c:198:40: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
drivers/gpu/drm/qxl/qxl_object.c:198:40: sparse: expected void *
drivers/gpu/drm/qxl/qxl_object.c:198:40: sparse: got void [noderef] __iomem *
drivers/gpu/drm/qxl/qxl_object.c:232:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __iomem *vaddr @@ got void *pmap @@
drivers/gpu/drm/qxl/qxl_object.c:232:33: sparse: expected void [noderef] __iomem *vaddr
drivers/gpu/drm/qxl/qxl_object.c:232:33: sparse: got void *pmap
vim +/__iomem +172 drivers/gpu/drm/qxl/qxl_object.c
156
157 int qxl_bo_kmap(struct qxl_bo *bo, struct dma_buf_map *map)
158 {
159 int r;
160
161 if (bo->kptr) {
162 bo->map_count++;
163 goto out;
164 }
165 r = ttm_bo_vmap(&bo->tbo, &bo->map);
166 if (r)
167 return r;
168 bo->map_count = 1;
169
170 /* TODO: Remove kptr in favor of map everywhere. */
171 if (bo->map.is_iomem)
> 172 bo->kptr = (void *)bo->map.vaddr_iomem;
173 else
174 bo->kptr = bo->map.vaddr;
175
176 out:
177 *map = bo->map;
178 return 0;
179 }
180
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip