linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* arch/s390/include/asm/bitops.h:112:4: error: invalid operand in inline asm: 'xi $0,${1:b}'
@ 2020-07-02 14:57 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-07-02 14:57 UTC (permalink / raw)
  To: Nikolay Aleksandrov; +Cc: kbuild-all, clang-built-linux, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 15073 bytes --]

Hi Nikolay,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   cd77006e01b3198c75fb7819b3d0ff89709539bb
commit: e0458d9a733ba71a2821d0c3fc0745baac697db0 net: bridge: fdb: convert is_sticky to bitops
date:   8 months ago
config: s390-randconfig-r036-20200701 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 003a086ffc0d1affbb8300b36225fb8150a2d40a)
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
        # install s390 cross compiling tool for clang build
        # apt-get install binutils-s390x-linux-gnu
        git checkout e0458d9a733ba71a2821d0c3fc0745baac697db0
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=s390 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from include/linux/skbuff.h:31:
   In file included from include/linux/dma-mapping.h:11:
   In file included from include/linux/scatterlist.h:9:
   In file included from arch/s390/include/asm/io.h:76:
   include/asm-generic/io.h:492:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
   #define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
                                                             ^
   include/uapi/linux/swab.h:118:21: note: expanded from macro '__swab32'
           ___constant_swab32(x) :                 \
                              ^
   include/uapi/linux/swab.h:20:12: note: expanded from macro '___constant_swab32'
           (((__u32)(x) & (__u32)0x00ff0000UL) >>  8) |            \
                     ^
   In file included from net/bridge/br_fdb.c:15:
   In file included from include/linux/netdevice.h:37:
   In file included from include/linux/ethtool.h:18:
   In file included from include/uapi/linux/ethtool.h:19:
   In file included from include/linux/if_ether.h:19:
   In file included from include/linux/skbuff.h:31:
   In file included from include/linux/dma-mapping.h:11:
   In file included from include/linux/scatterlist.h:9:
   In file included from arch/s390/include/asm/io.h:76:
   include/asm-generic/io.h:492:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
   #define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
                                                             ^
   include/uapi/linux/swab.h:118:21: note: expanded from macro '__swab32'
           ___constant_swab32(x) :                 \
                              ^
   include/uapi/linux/swab.h:21:12: note: expanded from macro '___constant_swab32'
           (((__u32)(x) & (__u32)0xff000000UL) >> 24)))
                     ^
   In file included from net/bridge/br_fdb.c:15:
   In file included from include/linux/netdevice.h:37:
   In file included from include/linux/ethtool.h:18:
   In file included from include/uapi/linux/ethtool.h:19:
   In file included from include/linux/if_ether.h:19:
   In file included from include/linux/skbuff.h:31:
   In file included from include/linux/dma-mapping.h:11:
   In file included from include/linux/scatterlist.h:9:
   In file included from arch/s390/include/asm/io.h:76:
   include/asm-generic/io.h:492:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
   #define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
                                                             ^
   include/uapi/linux/swab.h:119:12: note: expanded from macro '__swab32'
           __fswab32(x))
                     ^
   In file included from net/bridge/br_fdb.c:15:
   In file included from include/linux/netdevice.h:37:
   In file included from include/linux/ethtool.h:18:
   In file included from include/uapi/linux/ethtool.h:19:
   In file included from include/linux/if_ether.h:19:
   In file included from include/linux/skbuff.h:31:
   In file included from include/linux/dma-mapping.h:11:
   In file included from include/linux/scatterlist.h:9:
   In file included from arch/s390/include/asm/io.h:76:
   include/asm-generic/io.h:503: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:513:46: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writew(cpu_to_le16(value), PCI_IOBASE + addr);
                                            ~~~~~~~~~~ ^
   include/asm-generic/io.h:523:46: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writel(cpu_to_le32(value), PCI_IOBASE + addr);
                                            ~~~~~~~~~~ ^
   include/asm-generic/io.h:585:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           readsb(PCI_IOBASE + addr, buffer, count);
                  ~~~~~~~~~~ ^
   include/asm-generic/io.h:593:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           readsw(PCI_IOBASE + addr, buffer, count);
                  ~~~~~~~~~~ ^
   include/asm-generic/io.h:601:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           readsl(PCI_IOBASE + addr, buffer, count);
                  ~~~~~~~~~~ ^
   include/asm-generic/io.h:610:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           writesb(PCI_IOBASE + addr, buffer, count);
                   ~~~~~~~~~~ ^
   include/asm-generic/io.h:619:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           writesw(PCI_IOBASE + addr, buffer, count);
                   ~~~~~~~~~~ ^
   include/asm-generic/io.h:628:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           writesl(PCI_IOBASE + addr, buffer, count);
                   ~~~~~~~~~~ ^
   In file included from net/bridge/br_fdb.c:10:
   In file included from include/linux/kernel.h:12:
   In file included from include/linux/bitops.h:26:
   arch/s390/include/asm/bitops.h:69:4: error: invalid operand in inline asm: 'oi	$0,${1:b}'
                           "oi     %0,%b1\n"
                           ^
   arch/s390/include/asm/bitops.h:69:4: error: invalid operand in inline asm: 'oi	$0,${1:b}'
   error: invalid operand in inline asm: 'ni	$0,${1:b}'
   arch/s390/include/asm/bitops.h:69:4: error: invalid operand in inline asm: 'oi	$0,${1:b}'
>> arch/s390/include/asm/bitops.h:112:4: error: invalid operand in inline asm: 'xi	$0,${1:b}'
                           "xi     %0,%b1\n"
                           ^
   arch/s390/include/asm/bitops.h:90:4: error: invalid operand in inline asm: 'ni	$0,${1:b}'
                           "ni     %0,%b1\n"
                           ^
   20 warnings and 6 errors generated.

vim +112 arch/s390/include/asm/bitops.h

370b0b5f7744d6 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-16   58  
b4fd5a0a9295d8 arch/s390/include/asm/bitops.h Heiko Carstens 2019-10-04   59  static __always_inline void arch_set_bit(unsigned long nr, volatile unsigned long *ptr)
^1da177e4c3f41 include/asm-s390/bitops.h      Linus Torvalds 2005-04-16   60  {
370b0b5f7744d6 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-16   61  	unsigned long *addr = __bitops_word(nr, ptr);
370b0b5f7744d6 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-16   62  	unsigned long mask;
^1da177e4c3f41 include/asm-s390/bitops.h      Linus Torvalds 2005-04-16   63  
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   64  #ifdef CONFIG_HAVE_MARCH_ZEC12_FEATURES
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   65  	if (__builtin_constant_p(nr)) {
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   66  		unsigned char *caddr = __bitops_byte(nr, ptr);
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   67  
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   68  		asm volatile(
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17  @69  			"oi	%0,%b1\n"
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   70  			: "+Q" (*caddr)
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   71  			: "i" (1 << (nr & 7))
0ccc8b7ac86053 arch/s390/include/asm/bitops.h Heiko Carstens 2014-03-20   72  			: "cc", "memory");
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   73  		return;
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   74  	}
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   75  #endif
01c2475f6d959e arch/s390/include/asm/bitops.h Akinobu Mita   2013-03-23   76  	mask = 1UL << (nr & (BITS_PER_LONG - 1));
4ae987894c0605 arch/s390/include/asm/bitops.h Arnd Bergmann  2019-04-15   77  	__atomic64_or(mask, (long *)addr);
^1da177e4c3f41 include/asm-s390/bitops.h      Linus Torvalds 2005-04-16   78  }
^1da177e4c3f41 include/asm-s390/bitops.h      Linus Torvalds 2005-04-16   79  
b4fd5a0a9295d8 arch/s390/include/asm/bitops.h Heiko Carstens 2019-10-04   80  static __always_inline void arch_clear_bit(unsigned long nr, volatile unsigned long *ptr)
^1da177e4c3f41 include/asm-s390/bitops.h      Linus Torvalds 2005-04-16   81  {
370b0b5f7744d6 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-16   82  	unsigned long *addr = __bitops_word(nr, ptr);
370b0b5f7744d6 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-16   83  	unsigned long mask;
^1da177e4c3f41 include/asm-s390/bitops.h      Linus Torvalds 2005-04-16   84  
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   85  #ifdef CONFIG_HAVE_MARCH_ZEC12_FEATURES
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   86  	if (__builtin_constant_p(nr)) {
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   87  		unsigned char *caddr = __bitops_byte(nr, ptr);
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   88  
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   89  		asm volatile(
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   90  			"ni	%0,%b1\n"
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   91  			: "+Q" (*caddr)
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   92  			: "i" (~(1 << (nr & 7)))
0ccc8b7ac86053 arch/s390/include/asm/bitops.h Heiko Carstens 2014-03-20   93  			: "cc", "memory");
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   94  		return;
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   95  	}
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17   96  #endif
01c2475f6d959e arch/s390/include/asm/bitops.h Akinobu Mita   2013-03-23   97  	mask = ~(1UL << (nr & (BITS_PER_LONG - 1)));
4ae987894c0605 arch/s390/include/asm/bitops.h Arnd Bergmann  2019-04-15   98  	__atomic64_and(mask, (long *)addr);
^1da177e4c3f41 include/asm-s390/bitops.h      Linus Torvalds 2005-04-16   99  }
^1da177e4c3f41 include/asm-s390/bitops.h      Linus Torvalds 2005-04-16  100  
b4fd5a0a9295d8 arch/s390/include/asm/bitops.h Heiko Carstens 2019-10-04  101  static __always_inline void arch_change_bit(unsigned long nr,
9779048d71b18e arch/s390/include/asm/bitops.h Vasily Gorbik  2019-07-14  102  					    volatile unsigned long *ptr)
^1da177e4c3f41 include/asm-s390/bitops.h      Linus Torvalds 2005-04-16  103  {
370b0b5f7744d6 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-16  104  	unsigned long *addr = __bitops_word(nr, ptr);
370b0b5f7744d6 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-16  105  	unsigned long mask;
^1da177e4c3f41 include/asm-s390/bitops.h      Linus Torvalds 2005-04-16  106  
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17  107  #ifdef CONFIG_HAVE_MARCH_ZEC12_FEATURES
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17  108  	if (__builtin_constant_p(nr)) {
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17  109  		unsigned char *caddr = __bitops_byte(nr, ptr);
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17  110  
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17  111  		asm volatile(
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17 @112  			"xi	%0,%b1\n"
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17  113  			: "+Q" (*caddr)
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17  114  			: "i" (1 << (nr & 7))
0ccc8b7ac86053 arch/s390/include/asm/bitops.h Heiko Carstens 2014-03-20  115  			: "cc", "memory");
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17  116  		return;
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17  117  	}
4ae803253e4649 arch/s390/include/asm/bitops.h Heiko Carstens 2013-09-17  118  #endif
01c2475f6d959e arch/s390/include/asm/bitops.h Akinobu Mita   2013-03-23  119  	mask = 1UL << (nr & (BITS_PER_LONG - 1));
4ae987894c0605 arch/s390/include/asm/bitops.h Arnd Bergmann  2019-04-15  120  	__atomic64_xor(mask, (long *)addr);
^1da177e4c3f41 include/asm-s390/bitops.h      Linus Torvalds 2005-04-16  121  }
^1da177e4c3f41 include/asm-s390/bitops.h      Linus Torvalds 2005-04-16  122  

:::::: The code at line 112 was first introduced by commit
:::::: 4ae803253e4649803dc6e972bb5e59fc107cf474 s390/bitops: optimize set_bit() for constant values

:::::: TO: Heiko Carstens <heiko.carstens@de.ibm.com>
:::::: CC: Martin Schwidefsky <schwidefsky@de.ibm.com>

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28529 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-07-02 15:30 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-02 14:57 arch/s390/include/asm/bitops.h:112:4: error: invalid operand in inline asm: 'xi $0,${1:b}' kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).