Messages in this thread | | | Date | Sun, 3 Jan 2021 03:49:55 +0800 | From | kernel test robot <> | Subject | arch/x86/include/asm/special_insns.h:289:41: sparse: sparse: incorrect type in initializer (different address spaces) |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: eda809aef53426d044b519405d25d9da55319b76 commit: 8e50d392652f20616a136165dff516b86baf5e49 dmaengine: idxd: Add shared workqueue support date: 9 weeks 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=8e50d392652f20616a136165dff516b86baf5e49 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 8e50d392652f20616a136165dff516b86baf5e49 # 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@intel.com>
"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 drivers/dma/idxd/submit.c: note: in included file (through arch/x86/include/asm/processor.h, arch/x86/include/asm/timex.h, include/linux/timex.h, ...): >> arch/x86/include/asm/special_insns.h:289:41: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct <noident> *__dst @@ got void [noderef] __iomem *dst @@ arch/x86/include/asm/special_insns.h:289:41: sparse: expected struct <noident> *__dst arch/x86/include/asm/special_insns.h:289:41: sparse: got void [noderef] __iomem *dst
vim +289 arch/x86/include/asm/special_insns.h
0888e1030d3e3e Dave Jiang 2020-10-05 266 7f5933f81bd85a Dave Jiang 2020-10-05 267 /** 7f5933f81bd85a Dave Jiang 2020-10-05 268 * enqcmds - Enqueue a command in supervisor (CPL0) mode 7f5933f81bd85a Dave Jiang 2020-10-05 269 * @dst: destination, in MMIO space (must be 512-bit aligned) 7f5933f81bd85a Dave Jiang 2020-10-05 270 * @src: 512 bits memory operand 7f5933f81bd85a Dave Jiang 2020-10-05 271 * 7f5933f81bd85a Dave Jiang 2020-10-05 272 * The ENQCMDS instruction allows software to write a 512-bit command to 7f5933f81bd85a Dave Jiang 2020-10-05 273 * a 512-bit-aligned special MMIO region that supports the instruction. 7f5933f81bd85a Dave Jiang 2020-10-05 274 * A return status is loaded into the ZF flag in the RFLAGS register. 7f5933f81bd85a Dave Jiang 2020-10-05 275 * ZF = 0 equates to success, and ZF = 1 indicates retry or error. 7f5933f81bd85a Dave Jiang 2020-10-05 276 * 7f5933f81bd85a Dave Jiang 2020-10-05 277 * This function issues the ENQCMDS instruction to submit data from 7f5933f81bd85a Dave Jiang 2020-10-05 278 * kernel space to MMIO space, in a unit of 512 bits. Order of data access 7f5933f81bd85a Dave Jiang 2020-10-05 279 * is not guaranteed, nor is a memory barrier performed afterwards. It 7f5933f81bd85a Dave Jiang 2020-10-05 280 * returns 0 on success and -EAGAIN on failure. 7f5933f81bd85a Dave Jiang 2020-10-05 281 * 7f5933f81bd85a Dave Jiang 2020-10-05 282 * Warning: Do not use this helper unless your driver has checked that the 7f5933f81bd85a Dave Jiang 2020-10-05 283 * ENQCMDS instruction is supported on the platform and the device accepts 7f5933f81bd85a Dave Jiang 2020-10-05 284 * ENQCMDS. 7f5933f81bd85a Dave Jiang 2020-10-05 285 */ 7f5933f81bd85a Dave Jiang 2020-10-05 286 static inline int enqcmds(void __iomem *dst, const void *src) 7f5933f81bd85a Dave Jiang 2020-10-05 287 { 7f5933f81bd85a Dave Jiang 2020-10-05 288 const struct { char _[64]; } *__src = src; 7f5933f81bd85a Dave Jiang 2020-10-05 @289 struct { char _[64]; } *__dst = dst; 7f5933f81bd85a Dave Jiang 2020-10-05 290 int zf; 7f5933f81bd85a Dave Jiang 2020-10-05 291 7f5933f81bd85a Dave Jiang 2020-10-05 292 /* 7f5933f81bd85a Dave Jiang 2020-10-05 293 * ENQCMDS %(rdx), rax 7f5933f81bd85a Dave Jiang 2020-10-05 294 * 7f5933f81bd85a Dave Jiang 2020-10-05 295 * See movdir64b()'s comment on operand specification. 7f5933f81bd85a Dave Jiang 2020-10-05 296 */ 7f5933f81bd85a Dave Jiang 2020-10-05 297 asm volatile(".byte 0xf3, 0x0f, 0x38, 0xf8, 0x02, 0x66, 0x90" 7f5933f81bd85a Dave Jiang 2020-10-05 298 CC_SET(z) 7f5933f81bd85a Dave Jiang 2020-10-05 299 : CC_OUT(z) (zf), "+m" (*__dst) 7f5933f81bd85a Dave Jiang 2020-10-05 300 : "m" (*__src), "a" (__dst), "d" (__src)); 7f5933f81bd85a Dave Jiang 2020-10-05 301 7f5933f81bd85a Dave Jiang 2020-10-05 302 /* Submission failure is indicated via EFLAGS.ZF=1 */ 7f5933f81bd85a Dave Jiang 2020-10-05 303 if (zf) 7f5933f81bd85a Dave Jiang 2020-10-05 304 return -EAGAIN; 7f5933f81bd85a Dave Jiang 2020-10-05 305 7f5933f81bd85a Dave Jiang 2020-10-05 306 return 0; 7f5933f81bd85a Dave Jiang 2020-10-05 307 } 7f5933f81bd85a Dave Jiang 2020-10-05 308
:::::: The code at line 289 was first introduced by commit :::::: 7f5933f81bd85a0bf6a87d65c7327ea048a75e54 x86/asm: Add an enqcmds() wrapper for the ENQCMDS instruction
:::::: TO: Dave Jiang <dave.jiang@intel.com> :::::: CC: Borislav Petkov <bp@suse.de>
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [unhandled content-type:application/gzip] | |