tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git core/wip-u128 head: 901a34d8b5f52525b0cd02fd385429473430c495 commit: eb38cf9c437c67033c715adf08324d4cc9d4082d [3/9] arch: Introduce arch_{,try_}_cmpxchg128{,_local}() config: x86_64-randconfig-a013 compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 reproduce (this is a W=1 build): # https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?id=eb38cf9c437c67033c715adf08324d4cc9d4082d git remote add peterz-queue https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git git fetch --no-tags peterz-queue core/wip-u128 git checkout eb38cf9c437c67033c715adf08324d4cc9d4082d # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=x86_64 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 >>): In file included from include/crypto/gf128mul.h:53, from crypto/gf128mul.c:51: include/crypto/b128ops.h:54:3: error: conflicting types for 'u128'; have 'struct ' 54 | } u128; | ^~~~ In file included from include/uapi/linux/byteorder/little_endian.h:13, from include/linux/byteorder/little_endian.h:5, from arch/x86/include/uapi/asm/byteorder.h:5, from include/crypto/gf128mul.h:52, from crypto/gf128mul.c:51: include/linux/types.h:15:16: note: previous declaration of 'u128' with type 'u128' {aka '__int128 unsigned'} 15 | typedef __u128 u128; | ^~~~ In file included from arch/x86/include/asm/cmpxchg.h:145, from arch/x86/include/asm/atomic.h:8, from include/linux/atomic.h:7, from include/linux/cpumask.h:13, from arch/x86/include/asm/cpumask.h:5, from arch/x86/include/asm/msr.h:11, from arch/x86/include/asm/processor.h:22, from arch/x86/include/asm/cpufeature.h:5, from arch/x86/include/asm/thread_info.h:53, from include/linux/thread_info.h:60, from arch/x86/include/asm/preempt.h:9, from include/linux/preempt.h:78, from include/linux/spinlock.h:56, from include/linux/mmzone.h:8, from include/linux/gfp.h:7, from include/linux/slab.h:15, from include/crypto/gf128mul.h:54, from crypto/gf128mul.c:51: arch/x86/include/asm/cmpxchg_64.h: In function 'arch_cmpxchg128': >> arch/x86/include/asm/cmpxchg_64.h:40:17: error: incompatible types when returning type 'u128' but 'bool' {aka '_Bool'} was expected 40 | return o.full; | ~^~~~~ arch/x86/include/asm/cmpxchg_64.h: In function 'arch_cmpxchg128_local': arch/x86/include/asm/cmpxchg_64.h:53:17: error: incompatible types when returning type 'u128' but 'bool' {aka '_Bool'} was expected 53 | return o.full; | ~^~~~~ vim +40 arch/x86/include/asm/cmpxchg_64.h 29 30 static __always_inline bool arch_cmpxchg128(volatile u128 *ptr, u128 old, u128 new) 31 { 32 union __u128_halves o = { .full = old, }, n = { .full = new, }; 33 34 asm volatile(LOCK_PREFIX "cmpxchg16b %[ptr]" 35 : [ptr] "+m" (*ptr), 36 "+a" (o.low), "+d" (o.high) 37 : "b" (n.low), "c" (n.high) 38 : "memory"); 39 > 40 return o.full; 41 } 42 -- 0-DAY CI Kernel Test Service https://01.org/lkp