arch/x86/include/asm/io.h:422:27: sparse: sparse: incorrect type in argument 1 (different address spaces)

From: kernel test robot
Date: Sat Jan 02 2021 - 14:31:47 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: eda809aef53426d044b519405d25d9da55319b76
commit: 0888e1030d3e3e5ce9dfd8e030cf13a2e9a1519a x86/asm: Carve out a generic movdir64b() helper for general usage
date: 3 months ago
config: x86_64-randconfig-s031-20210103 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-184-g1b896707-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0888e1030d3e3e5ce9dfd8e030cf13a2e9a1519a
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 0888e1030d3e3e5ce9dfd8e030cf13a2e9a1519a
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64

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/dma/idxd/submit.c: note: in included file (through include/linux/io.h, include/linux/pci.h):
>> arch/x86/include/asm/io.h:422:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *dst @@ got void [noderef] __iomem *dst @@
arch/x86/include/asm/io.h:422:27: sparse: expected void *dst
arch/x86/include/asm/io.h:422:27: sparse: got void [noderef] __iomem *dst

vim +422 arch/x86/include/asm/io.h

398
399 extern bool phys_mem_access_encrypted(unsigned long phys_addr,
400 unsigned long size);
401
402 /**
403 * iosubmit_cmds512 - copy data to single MMIO location, in 512-bit units
404 * @dst: destination, in MMIO space (must be 512-bit aligned)
405 * @src: source
406 * @count: number of 512 bits quantities to submit
407 *
408 * Submit data from kernel space to MMIO space, in units of 512 bits at a
409 * time. Order of access is not guaranteed, nor is a memory barrier
410 * performed afterwards.
411 *
412 * Warning: Do not use this helper unless your driver has checked that the CPU
413 * instruction is supported on the platform.
414 */
415 static inline void iosubmit_cmds512(void __iomem *dst, const void *src,
416 size_t count)
417 {
418 const u8 *from = src;
419 const u8 *end = from + count * 64;
420
421 while (from < end) {
> 422 movdir64b(dst, from);
423 from += 64;
424 }
425 }
426

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip