On Thu, 2022-12-01 at 04:08 +0800, kernel test robot wrote: > tree: https://github.com/ceph/ceph-client.git testing > head: 6a6f71f4a4a945600943c2ce926f7b4174f75c0d > commit: 8c552db6d9d144857f755a156b10de0b848a9de8 [1/4] [DO NOT MERGE] filelock: new helper: vfs_inode_has_locks > config: hexagon-randconfig-r041-20221128 > compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 6e4cea55f0d1104408b26ac574566a0e4de48036) > reproduce (this is a W=1 build): > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # https://github.com/ceph/ceph-client/commit/8c552db6d9d144857f755a156b10de0b848a9de8 > git remote add ceph-client https://github.com/ceph/ceph-client.git > git fetch --no-tags ceph-client testing > git checkout 8c552db6d9d144857f755a156b10de0b848a9de8 > # save the config file > mkdir build_dir && cp config build_dir/.config > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon prepare > > If you fix the issue, kindly add following tag where applicable > > Reported-by: kernel test robot <lkp@xxxxxxxxx> > > All errors (new ones prefixed by >>): > > In file included from arch/hexagon/kernel/asm-offsets.c:12: > In file included from include/linux/compat.h:17: > > > include/linux/fs.h:1342:20: error: static declaration of 'vfs_inode_has_locks' follows non-static declaration > static inline bool vfs_inode_has_locks(struct inode *inode) > ^ > include/linux/fs.h:1173:6: note: previous declaration is here > bool vfs_inode_has_locks(struct inode *inode); > ^ I'm really confused here. The non-static declaration is inside an #ifdef CONFIG_FILE_LOCKING block, and the static inline definition is in the #else block just after. How is it possible for them to conflict? Is the preprocessor borked or something? FWIW, I was able to build kernels on x86_64 with CONFIG_FILE_LOCKING both enabled and disabled. I'm not seeing the same problem there. > In file included from arch/hexagon/kernel/asm-offsets.c:15: > In file included from include/linux/interrupt.h:11: > In file included from include/linux/hardirq.h:11: > In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: > In file included from include/asm-generic/hardirq.h:17: > In file included from include/linux/irq.h:20: > In file included from include/linux/io.h:13: > In file included from arch/hexagon/include/asm/io.h:334: > include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] > val = __raw_readb(PCI_IOBASE + addr); > ~~~~~~~~~~ ^ > include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] > val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr)); > ~~~~~~~~~~ ^ > include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu' > #define __le16_to_cpu(x) ((__force __u16)(__le16)(x)) > ^ > In file included from arch/hexagon/kernel/asm-offsets.c:15: > In file included from include/linux/interrupt.h:11: > In file included from include/linux/hardirq.h:11: > In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: > In file included from include/asm-generic/hardirq.h:17: > In file included from include/linux/irq.h:20: > In file included from include/linux/io.h:13: > In file included from arch/hexagon/include/asm/io.h:334: > include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] > val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr)); > ~~~~~~~~~~ ^ > include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu' > #define __le32_to_cpu(x) ((__force __u32)(__le32)(x)) > ^ > In file included from arch/hexagon/kernel/asm-offsets.c:15: > In file included from include/linux/interrupt.h:11: > In file included from include/linux/hardirq.h:11: > In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: > In file included from include/asm-generic/hardirq.h:17: > In file included from include/linux/irq.h:20: > In file included from include/linux/io.h:13: > In file included from arch/hexagon/include/asm/io.h:334: > include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] > __raw_writeb(value, PCI_IOBASE + addr); > ~~~~~~~~~~ ^ > include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] > __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr); > ~~~~~~~~~~ ^ > include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] > __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr); > ~~~~~~~~~~ ^ > 6 warnings and 1 error generated. > make[2]: *** [scripts/Makefile.build:118: arch/hexagon/kernel/asm-offsets.s] Error 1 > make[2]: Target 'prepare' not remade because of errors. > make[1]: *** [Makefile:1270: prepare0] Error 2 > make[1]: Target 'prepare' not remade because of errors. > make: *** [Makefile:231: __sub-make] Error 2 > make: Target 'prepare' not remade because of errors. > > > vim +/vfs_inode_has_locks +1342 include/linux/fs.h > > 1341 > > 1342 static inline bool vfs_inode_has_locks(struct inode *inode) > 1343 { > 1344 return false; > 1345 } > 1346 > -- Jeff Layton <jlayton@xxxxxxxxxx>