lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Sun, 3 Jan 2021 03:49:55 +0800
From:   kernel test robot <lkp@...el.com>
To:     Dave Jiang <dave.jiang@...el.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Vinod Koul <vkoul@...nel.org>, Tony Luck <tony.luck@...el.com>,
        Dan Williams <dan.j.williams@...el.com>
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@...el.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@...el.com>
:::::: CC: Borislav Petkov <bp@...e.de>

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

Download attachment ".config.gz" of type "application/gzip" (38686 bytes)

Powered by blists - more mailing lists