Hi Heiko, FYI, the error/warning still remains. tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: e8f60cd7db24f94f2dbed6bec30dd16a68fc0828 commit: 4afeb670710efa5cd5ed8b1d9f2d22d6ce332bcc s390/alternatives: use instructions instead of byte patterns date: 10 months ago config: s390-randconfig-r004-20230110 compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 8d9828ef5aa9688500657d36cd2aefbe12bbd162) 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 # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4afeb670710efa5cd5ed8b1d9f2d22d6ce332bcc git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 4afeb670710efa5cd5ed8b1d9f2d22d6ce332bcc # 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=s390 olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=s390 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All errors (new ones prefixed by >>): arch/s390/include/asm/spinlock.h:81:3: error: expected absolute expression ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:118:2: note: expanded from macro 'ALTERNATIVE' ALTINSTR_REPLACEMENT(altinstr, 1) \ ^ arch/s390/include/asm/alternative.h:113:2: note: expanded from macro 'ALTINSTR_REPLACEMENT' INSTR_LEN_SANITY_CHECK(altinstr_len(num)) ^ arch/s390/include/asm/alternative.h:62:3: note: expanded from macro 'INSTR_LEN_SANITY_CHECK' ".if " len " > 254\n" \ ^ :5:5: note: instantiated into assembly here .if 6651b-6641b > 254 ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: arch/s390/include/asm/spinlock.h:81:3: error: cpu alternatives does not support instructions blocks > 254 bytes ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:118:2: note: expanded from macro 'ALTERNATIVE' ALTINSTR_REPLACEMENT(altinstr, 1) \ ^ arch/s390/include/asm/alternative.h:113:2: note: expanded from macro 'ALTINSTR_REPLACEMENT' INSTR_LEN_SANITY_CHECK(altinstr_len(num)) ^ arch/s390/include/asm/alternative.h:63:3: note: expanded from macro 'INSTR_LEN_SANITY_CHECK' "\t.error \"cpu alternatives does not support instructions " \ ^ :6:2: note: instantiated into assembly here .error "cpu alternatives does not support instructions blocks > 254 bytes" ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: arch/s390/include/asm/spinlock.h:81:3: error: expected absolute expression ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:118:2: note: expanded from macro 'ALTERNATIVE' ALTINSTR_REPLACEMENT(altinstr, 1) \ ^ arch/s390/include/asm/alternative.h:113:2: note: expanded from macro 'ALTINSTR_REPLACEMENT' INSTR_LEN_SANITY_CHECK(altinstr_len(num)) ^ arch/s390/include/asm/alternative.h:66:3: note: expanded from macro 'INSTR_LEN_SANITY_CHECK' ".if (" len ") %% 2\n" \ ^ :8:5: note: instantiated into assembly here .if (6651b-6641b) % 2 ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: arch/s390/include/asm/spinlock.h:81:3: error: cpu alternatives instructions length is odd ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:118:2: note: expanded from macro 'ALTERNATIVE' ALTINSTR_REPLACEMENT(altinstr, 1) \ ^ arch/s390/include/asm/alternative.h:113:2: note: expanded from macro 'ALTINSTR_REPLACEMENT' INSTR_LEN_SANITY_CHECK(altinstr_len(num)) ^ arch/s390/include/asm/alternative.h:67:3: note: expanded from macro 'INSTR_LEN_SANITY_CHECK' "\t.error \"cpu alternatives instructions length is odd\"\n" \ ^ :9:2: note: instantiated into assembly here .error "cpu alternatives instructions length is odd" ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: arch/s390/include/asm/spinlock.h:81:3: error: expected absolute expression ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:120:2: note: expanded from macro 'ALTERNATIVE' OLDINSTR(oldinstr, 1) \ ^ arch/s390/include/asm/alternative.h:90:2: note: expanded from macro 'OLDINSTR' OLDINSTR_PADDING(oldinstr, num) \ ^ arch/s390/include/asm/alternative.h:71:3: note: expanded from macro 'OLDINSTR_PADDING' ".if " oldinstr_pad_len(num) " > 6\n" \ ^ :15:5: note: instantiated into assembly here .if -(((6651b-6641b)-(662b-661b)) > 0) * ((6651b-6641b)-(662b-661b)) > 6 ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: >> arch/s390/include/asm/spinlock.h:81:3: error: unexpected token in '.rept' directive ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:120:2: note: expanded from macro 'ALTERNATIVE' OLDINSTR(oldinstr, 1) \ ^ arch/s390/include/asm/alternative.h:90:2: note: expanded from macro 'OLDINSTR' OLDINSTR_PADDING(oldinstr, num) \ ^ arch/s390/include/asm/alternative.h:74:3: note: expanded from macro 'OLDINSTR_PADDING' "\t.rept (" oldinstr_pad_len(num) " - (6620b-662b)) / 2\n" \ ^ :18:8: note: instantiated into assembly here .rept (-(((6651b-6641b)-(662b-661b)) > 0) * ((6651b-6641b)-(662b-661b)) - (6620b-662b)) / 2 ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: >> arch/s390/include/asm/spinlock.h:81:3: error: unexpected token in '.rept' directive ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:120:2: note: expanded from macro 'ALTERNATIVE' OLDINSTR(oldinstr, 1) \ ^ arch/s390/include/asm/alternative.h:90:2: note: expanded from macro 'OLDINSTR' OLDINSTR_PADDING(oldinstr, num) \ ^ arch/s390/include/asm/alternative.h:77:3: note: expanded from macro 'OLDINSTR_PADDING' "\t.rept " oldinstr_pad_len(num) " / 6\n" \ ^ :21:8: note: instantiated into assembly here .rept -(((6651b-6641b)-(662b-661b)) > 0) * ((6651b-6641b)-(662b-661b)) / 6 ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: >> arch/s390/include/asm/spinlock.h:81:3: error: unknown directive ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:120:2: note: expanded from macro 'ALTERNATIVE' OLDINSTR(oldinstr, 1) \ ^ arch/s390/include/asm/alternative.h:90:2: note: expanded from macro 'OLDINSTR' OLDINSTR_PADDING(oldinstr, num) \ ^ arch/s390/include/asm/alternative.h:78:3: note: expanded from macro 'OLDINSTR_PADDING' "\t.jgnop .\n" \ ^ :22:2: note: instantiated into assembly here .jgnop . ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: >> arch/s390/include/asm/spinlock.h:81:3: error: unmatched '.endr' directive ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:120:2: note: expanded from macro 'ALTERNATIVE' OLDINSTR(oldinstr, 1) \ ^ arch/s390/include/asm/alternative.h:90:2: note: expanded from macro 'OLDINSTR' OLDINSTR_PADDING(oldinstr, num) \ ^ arch/s390/include/asm/alternative.h:79:3: note: expanded from macro 'OLDINSTR_PADDING' "\t.endr\n" \ ^ :23:7: note: instantiated into assembly here .endr ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: >> arch/s390/include/asm/spinlock.h:81:3: error: unexpected token in '.rept' directive ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:120:2: note: expanded from macro 'ALTERNATIVE' OLDINSTR(oldinstr, 1) \ ^ arch/s390/include/asm/alternative.h:90:2: note: expanded from macro 'OLDINSTR' OLDINSTR_PADDING(oldinstr, num) \ ^ arch/s390/include/asm/alternative.h:80:3: note: expanded from macro 'OLDINSTR_PADDING' "\t.rept " oldinstr_pad_len(num) " %% 6 / 4\n" \ ^ :24:8: note: instantiated into assembly here .rept -(((6651b-6641b)-(662b-661b)) > 0) * ((6651b-6641b)-(662b-661b)) % 6 / 4 ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: >> arch/s390/include/asm/spinlock.h:81:3: error: unmatched '.endr' directive ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:120:2: note: expanded from macro 'ALTERNATIVE' OLDINSTR(oldinstr, 1) \ ^ arch/s390/include/asm/alternative.h:90:2: note: expanded from macro 'OLDINSTR' OLDINSTR_PADDING(oldinstr, num) \ ^ arch/s390/include/asm/alternative.h:82:3: note: expanded from macro 'OLDINSTR_PADDING' "\t.endr\n" \ ^ :26:7: note: instantiated into assembly here .endr ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: >> arch/s390/include/asm/spinlock.h:81:3: error: unexpected token in '.rept' directive ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:120:2: note: expanded from macro 'ALTERNATIVE' OLDINSTR(oldinstr, 1) \ ^ arch/s390/include/asm/alternative.h:90:2: note: expanded from macro 'OLDINSTR' OLDINSTR_PADDING(oldinstr, num) \ ^ arch/s390/include/asm/alternative.h:83:3: note: expanded from macro 'OLDINSTR_PADDING' "\t.rept " oldinstr_pad_len(num) " %% 6 %% 4 / 2\n" \ ^ :27:8: note: instantiated into assembly here .rept -(((6651b-6641b)-(662b-661b)) > 0) * ((6651b-6641b)-(662b-661b)) % 6 % 4 / 2 ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: >> arch/s390/include/asm/spinlock.h:81:3: error: unmatched '.endr' directive ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:120:2: note: expanded from macro 'ALTERNATIVE' OLDINSTR(oldinstr, 1) \ ^ arch/s390/include/asm/alternative.h:90:2: note: expanded from macro 'OLDINSTR' OLDINSTR_PADDING(oldinstr, num) \ ^ arch/s390/include/asm/alternative.h:85:3: note: expanded from macro 'OLDINSTR_PADDING' ".endr\n" \ ^ :29:6: note: instantiated into assembly here .endr ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: arch/s390/include/asm/spinlock.h:81:3: error: expected absolute expression ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:120:2: note: expanded from macro 'ALTERNATIVE' OLDINSTR(oldinstr, 1) \ ^ arch/s390/include/asm/alternative.h:92:2: note: expanded from macro 'OLDINSTR' INSTR_LEN_SANITY_CHECK(oldinstr_len) ^ arch/s390/include/asm/alternative.h:62:3: note: expanded from macro 'INSTR_LEN_SANITY_CHECK' ".if " len " > 254\n" \ ^ :32:5: note: instantiated into assembly here .if 662b-661b > 254 ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: arch/s390/include/asm/spinlock.h:81:3: error: cpu alternatives does not support instructions blocks > 254 bytes ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:120:2: note: expanded from macro 'ALTERNATIVE' OLDINSTR(oldinstr, 1) \ ^ arch/s390/include/asm/alternative.h:92:2: note: expanded from macro 'OLDINSTR' INSTR_LEN_SANITY_CHECK(oldinstr_len) ^ arch/s390/include/asm/alternative.h:63:3: note: expanded from macro 'INSTR_LEN_SANITY_CHECK' "\t.error \"cpu alternatives does not support instructions " \ ^ :33:2: note: instantiated into assembly here .error "cpu alternatives does not support instructions blocks > 254 bytes" ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: arch/s390/include/asm/spinlock.h:81:3: error: expected absolute expression ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:120:2: note: expanded from macro 'ALTERNATIVE' OLDINSTR(oldinstr, 1) \ ^ arch/s390/include/asm/alternative.h:92:2: note: expanded from macro 'OLDINSTR' INSTR_LEN_SANITY_CHECK(oldinstr_len) ^ arch/s390/include/asm/alternative.h:66:3: note: expanded from macro 'INSTR_LEN_SANITY_CHECK' ".if (" len ") %% 2\n" \ ^ :35:5: note: instantiated into assembly here .if (662b-661b) % 2 ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: arch/s390/include/asm/spinlock.h:81:3: error: cpu alternatives instructions length is odd ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ ^ arch/s390/include/asm/alternative.h:120:2: note: expanded from macro 'ALTERNATIVE' OLDINSTR(oldinstr, 1) \ ^ arch/s390/include/asm/alternative.h:92:2: note: expanded from macro 'OLDINSTR' INSTR_LEN_SANITY_CHECK(oldinstr_len) ^ arch/s390/include/asm/alternative.h:67:3: note: expanded from macro 'INSTR_LEN_SANITY_CHECK' "\t.error \"cpu alternatives instructions length is odd\"\n" \ ^ :36:2: note: instantiated into assembly here .error "cpu alternatives instructions length is odd" ^ In file included from fs/cachefiles/cache.c:8: In file included from include/linux/slab.h:15: In file included from include/linux/gfp.h:6: In file included from include/linux/mmzone.h:8: In file included from include/linux/spinlock.h:93: arch/s390/include/asm/spinlock.h:81:3: error: expected absolute expression .. vim +81 arch/s390/include/asm/spinlock.h ^1da177e4c3f41 include/asm-s390/spinlock.h Linus Torvalds 2005-04-16 76 0199c4e68d1f02 arch/s390/include/asm/spinlock.h Thomas Gleixner 2009-12-02 77 static inline void arch_spin_unlock(arch_spinlock_t *lp) ^1da177e4c3f41 include/asm-s390/spinlock.h Linus Torvalds 2005-04-16 78 { 02c503ff237cdc arch/s390/include/asm/spinlock.h Martin Schwidefsky 2016-11-28 79 typecheck(int, lp->lock); cceb018377a123 arch/s390/include/asm/spinlock.h Heiko Carstens 2019-10-18 80 asm_inline volatile( f554be42fd0fd8 arch/s390/include/asm/spinlock.h Vasily Gorbik 2017-10-12 @81 ALTERNATIVE("", ".long 0xb2fa0070", 49) /* NIAI 7 */ b96f7d881ad942 arch/s390/include/asm/spinlock.h Martin Schwidefsky 2017-03-24 82 " sth %1,%0\n" 4f9abb7e70f2f4 arch/s390/include/asm/spinlock.h Heiko Carstens 2021-03-22 83 : "=R" (((unsigned short *) &lp->lock)[1]) b96f7d881ad942 arch/s390/include/asm/spinlock.h Martin Schwidefsky 2017-03-24 84 : "d" (0) : "cc", "memory"); 5b3f683e694a83 arch/s390/include/asm/spinlock.h Philipp Hachtmann 2014-04-07 85 } 5b3f683e694a83 arch/s390/include/asm/spinlock.h Philipp Hachtmann 2014-04-07 86 :::::: The code at line 81 was first introduced by commit :::::: f554be42fd0fd8dd14680c67f2db26b3e7de9670 s390/spinlock: use cpu alternatives to enable niai instruction :::::: TO: Vasily Gorbik :::::: CC: Martin Schwidefsky -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests