Hi Kumar, kernel test robot noticed the following build errors: [auto build test ERROR on f44275e7155dc310d36516fc25be503da099781c] url: https://github.com/intel-lab-lkp/linux/commits/Kumar-Kartikeya-Dwivedi/locking-Move-MCS-struct-definition-to-public-header/20250107-220615 base: f44275e7155dc310d36516fc25be503da099781c patch link: https://lore.kernel.org/r/20250107140004.2732830-21-memxor%40gmail.com patch subject: [PATCH bpf-next v1 20/22] bpf: Introduce rqspinlock kfuncs config: um-allnoconfig (https://download.01.org/0day-ci/archive/20250108/202501081854.xzCcM6nm-lkp@xxxxxxxxx/config) compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250108/202501081854.xzCcM6nm-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202501081854.xzCcM6nm-lkp@xxxxxxxxx/ All error/warnings (new ones prefixed by >>): In file included from fs/kernfs/mount.c:22: In file included from fs/kernfs/kernfs-internal.h:20: In file included from include/linux/fs_context.h:14: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:7: >> include/asm-generic/qspinlock_types.h:44:3: error: typedef redefinition with different types ('struct qspinlock' vs 'struct arch_spinlock_t') 44 | } arch_spinlock_t; | ^ include/linux/spinlock_types_up.h:25:20: note: previous definition is here 25 | typedef struct { } arch_spinlock_t; | ^ In file included from fs/kernfs/mount.c:22: In file included from fs/kernfs/kernfs-internal.h:20: In file included from include/linux/fs_context.h:14: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:7: >> include/asm-generic/qspinlock_types.h:49:9: warning: '__ARCH_SPIN_LOCK_UNLOCKED' macro redefined [-Wmacro-redefined] 49 | #define __ARCH_SPIN_LOCK_UNLOCKED { { .val = ATOMIC_INIT(0) } } | ^ include/linux/spinlock_types_up.h:27:9: note: previous definition is here 27 | #define __ARCH_SPIN_LOCK_UNLOCKED { } | ^ In file included from fs/kernfs/mount.c:22: In file included from fs/kernfs/kernfs-internal.h:20: In file included from include/linux/fs_context.h:14: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:144:9: warning: 'arch_spin_is_locked' macro redefined [-Wmacro-redefined] 144 | #define arch_spin_is_locked(l) queued_spin_is_locked(l) | ^ include/linux/spinlock_up.h:62:9: note: previous definition is here 62 | #define arch_spin_is_locked(lock) ((void)(lock), 0) | ^ In file included from fs/kernfs/mount.c:22: In file included from fs/kernfs/kernfs-internal.h:20: In file included from include/linux/fs_context.h:14: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:145:9: warning: 'arch_spin_is_contended' macro redefined [-Wmacro-redefined] 145 | #define arch_spin_is_contended(l) queued_spin_is_contended(l) | ^ include/linux/spinlock_up.h:69:9: note: previous definition is here 69 | #define arch_spin_is_contended(lock) (((void)(lock), 0)) | ^ In file included from fs/kernfs/mount.c:22: In file included from fs/kernfs/kernfs-internal.h:20: In file included from include/linux/fs_context.h:14: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:147:9: warning: 'arch_spin_lock' macro redefined [-Wmacro-redefined] 147 | #define arch_spin_lock(l) queued_spin_lock(l) | ^ include/linux/spinlock_up.h:64:10: note: previous definition is here 64 | # define arch_spin_lock(lock) do { barrier(); (void)(lock); } while (0) | ^ In file included from fs/kernfs/mount.c:22: In file included from fs/kernfs/kernfs-internal.h:20: In file included from include/linux/fs_context.h:14: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:148:9: warning: 'arch_spin_trylock' macro redefined [-Wmacro-redefined] 148 | #define arch_spin_trylock(l) queued_spin_trylock(l) | ^ include/linux/spinlock_up.h:66:10: note: previous definition is here 66 | # define arch_spin_trylock(lock) ({ barrier(); (void)(lock); 1; }) | ^ In file included from fs/kernfs/mount.c:22: In file included from fs/kernfs/kernfs-internal.h:20: In file included from include/linux/fs_context.h:14: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:149:9: warning: 'arch_spin_unlock' macro redefined [-Wmacro-redefined] 149 | #define arch_spin_unlock(l) queued_spin_unlock(l) | ^ include/linux/spinlock_up.h:65:10: note: previous definition is here 65 | # define arch_spin_unlock(lock) do { barrier(); (void)(lock); } while (0) | ^ 6 warnings and 1 error generated. -- In file included from fs/kernfs/inode.c:16: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:7: >> include/asm-generic/qspinlock_types.h:44:3: error: typedef redefinition with different types ('struct qspinlock' vs 'struct arch_spinlock_t') 44 | } arch_spinlock_t; | ^ include/linux/spinlock_types_up.h:25:20: note: previous definition is here 25 | typedef struct { } arch_spinlock_t; | ^ In file included from fs/kernfs/inode.c:16: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:7: >> include/asm-generic/qspinlock_types.h:49:9: warning: '__ARCH_SPIN_LOCK_UNLOCKED' macro redefined [-Wmacro-redefined] 49 | #define __ARCH_SPIN_LOCK_UNLOCKED { { .val = ATOMIC_INIT(0) } } | ^ include/linux/spinlock_types_up.h:27:9: note: previous definition is here 27 | #define __ARCH_SPIN_LOCK_UNLOCKED { } | ^ In file included from fs/kernfs/inode.c:16: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:144:9: warning: 'arch_spin_is_locked' macro redefined [-Wmacro-redefined] 144 | #define arch_spin_is_locked(l) queued_spin_is_locked(l) | ^ include/linux/spinlock_up.h:62:9: note: previous definition is here 62 | #define arch_spin_is_locked(lock) ((void)(lock), 0) | ^ In file included from fs/kernfs/inode.c:16: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:145:9: warning: 'arch_spin_is_contended' macro redefined [-Wmacro-redefined] 145 | #define arch_spin_is_contended(l) queued_spin_is_contended(l) | ^ include/linux/spinlock_up.h:69:9: note: previous definition is here 69 | #define arch_spin_is_contended(lock) (((void)(lock), 0)) | ^ In file included from fs/kernfs/inode.c:16: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:147:9: warning: 'arch_spin_lock' macro redefined [-Wmacro-redefined] 147 | #define arch_spin_lock(l) queued_spin_lock(l) | ^ include/linux/spinlock_up.h:64:10: note: previous definition is here 64 | # define arch_spin_lock(lock) do { barrier(); (void)(lock); } while (0) | ^ In file included from fs/kernfs/inode.c:16: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:148:9: warning: 'arch_spin_trylock' macro redefined [-Wmacro-redefined] 148 | #define arch_spin_trylock(l) queued_spin_trylock(l) | ^ include/linux/spinlock_up.h:66:10: note: previous definition is here 66 | # define arch_spin_trylock(lock) ({ barrier(); (void)(lock); 1; }) | ^ In file included from fs/kernfs/inode.c:16: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:149:9: warning: 'arch_spin_unlock' macro redefined [-Wmacro-redefined] 149 | #define arch_spin_unlock(l) queued_spin_unlock(l) | ^ include/linux/spinlock_up.h:65:10: note: previous definition is here 65 | # define arch_spin_unlock(lock) do { barrier(); (void)(lock); } while (0) | ^ fs/kernfs/inode.c:29:9: warning: excess elements in struct initializer [-Wexcess-initializers] 29 | static DEFINE_MUTEX(iattr_mutex); | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/mutex.h:87:27: note: expanded from macro 'DEFINE_MUTEX' 87 | struct mutex mutexname = __MUTEX_INITIALIZER(mutexname) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/mutex.h:81:18: note: expanded from macro '__MUTEX_INITIALIZER' 81 | , .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(lockname.wait_lock) \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_types_raw.h:69:19: note: expanded from macro '__RAW_SPIN_LOCK_UNLOCKED' 69 | (raw_spinlock_t) __RAW_SPIN_LOCK_INITIALIZER(lockname) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_types_raw.h:64:14: note: expanded from macro '__RAW_SPIN_LOCK_INITIALIZER' 64 | .raw_lock = __ARCH_SPIN_LOCK_UNLOCKED, \ | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/asm-generic/qspinlock_types.h:49:37: note: expanded from macro '__ARCH_SPIN_LOCK_UNLOCKED' 49 | #define __ARCH_SPIN_LOCK_UNLOCKED { { .val = ATOMIC_INIT(0) } } | ^~~~~~~~~~~~~~~~~~~~~~~~~ 7 warnings and 1 error generated. -- In file included from fs/kernfs/dir.c:15: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:7: >> include/asm-generic/qspinlock_types.h:44:3: error: typedef redefinition with different types ('struct qspinlock' vs 'struct arch_spinlock_t') 44 | } arch_spinlock_t; | ^ include/linux/spinlock_types_up.h:25:20: note: previous definition is here 25 | typedef struct { } arch_spinlock_t; | ^ In file included from fs/kernfs/dir.c:15: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:7: >> include/asm-generic/qspinlock_types.h:49:9: warning: '__ARCH_SPIN_LOCK_UNLOCKED' macro redefined [-Wmacro-redefined] 49 | #define __ARCH_SPIN_LOCK_UNLOCKED { { .val = ATOMIC_INIT(0) } } | ^ include/linux/spinlock_types_up.h:27:9: note: previous definition is here 27 | #define __ARCH_SPIN_LOCK_UNLOCKED { } | ^ In file included from fs/kernfs/dir.c:15: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:144:9: warning: 'arch_spin_is_locked' macro redefined [-Wmacro-redefined] 144 | #define arch_spin_is_locked(l) queued_spin_is_locked(l) | ^ include/linux/spinlock_up.h:62:9: note: previous definition is here 62 | #define arch_spin_is_locked(lock) ((void)(lock), 0) | ^ In file included from fs/kernfs/dir.c:15: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:145:9: warning: 'arch_spin_is_contended' macro redefined [-Wmacro-redefined] 145 | #define arch_spin_is_contended(l) queued_spin_is_contended(l) | ^ include/linux/spinlock_up.h:69:9: note: previous definition is here 69 | #define arch_spin_is_contended(lock) (((void)(lock), 0)) | ^ In file included from fs/kernfs/dir.c:15: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:147:9: warning: 'arch_spin_lock' macro redefined [-Wmacro-redefined] 147 | #define arch_spin_lock(l) queued_spin_lock(l) | ^ include/linux/spinlock_up.h:64:10: note: previous definition is here 64 | # define arch_spin_lock(lock) do { barrier(); (void)(lock); } while (0) | ^ In file included from fs/kernfs/dir.c:15: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:148:9: warning: 'arch_spin_trylock' macro redefined [-Wmacro-redefined] 148 | #define arch_spin_trylock(l) queued_spin_trylock(l) | ^ include/linux/spinlock_up.h:66:10: note: previous definition is here 66 | # define arch_spin_trylock(lock) ({ barrier(); (void)(lock); 1; }) | ^ In file included from fs/kernfs/dir.c:15: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:33: In file included from arch/x86/include/asm/rqspinlock.h:18: In file included from include/asm-generic/rqspinlock.h:15: In file included from arch/x86/include/asm/qspinlock.h:114: >> include/asm-generic/qspinlock.h:149:9: warning: 'arch_spin_unlock' macro redefined [-Wmacro-redefined] 149 | #define arch_spin_unlock(l) queued_spin_unlock(l) | ^ include/linux/spinlock_up.h:65:10: note: previous definition is here 65 | # define arch_spin_unlock(lock) do { barrier(); (void)(lock); } while (0) | ^ fs/kernfs/dir.c:28:8: warning: excess elements in struct initializer [-Wexcess-initializers] 28 | static DEFINE_SPINLOCK(kernfs_pr_cont_lock); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_types.h:43:43: note: expanded from macro 'DEFINE_SPINLOCK' 43 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x) | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_types.h:41:15: note: expanded from macro '__SPIN_LOCK_UNLOCKED' 41 | (spinlock_t) __SPIN_LOCK_INITIALIZER(lockname) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_types.h:38:15: note: expanded from macro '__SPIN_LOCK_INITIALIZER' 38 | { { .rlock = ___SPIN_LOCK_INITIALIZER(lockname) } } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_types.h:33:14: note: expanded from macro '___SPIN_LOCK_INITIALIZER' 33 | .raw_lock = __ARCH_SPIN_LOCK_UNLOCKED, \ | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/asm-generic/qspinlock_types.h:49:37: note: expanded from macro '__ARCH_SPIN_LOCK_UNLOCKED' 49 | #define __ARCH_SPIN_LOCK_UNLOCKED { { .val = ATOMIC_INIT(0) } } | ^~~~~~~~~~~~~~~~~~~~~~~~~ fs/kernfs/dir.c:30:8: warning: excess elements in struct initializer [-Wexcess-initializers] 30 | static DEFINE_SPINLOCK(kernfs_idr_lock); /* root->ino_idr */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_types.h:43:43: note: expanded from macro 'DEFINE_SPINLOCK' 43 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x) | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_types.h:41:15: note: expanded from macro '__SPIN_LOCK_UNLOCKED' 41 | (spinlock_t) __SPIN_LOCK_INITIALIZER(lockname) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_types.h:38:15: note: expanded from macro '__SPIN_LOCK_INITIALIZER' 38 | { { .rlock = ___SPIN_LOCK_INITIALIZER(lockname) } } | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock_types.h:33:14: note: expanded from macro '___SPIN_LOCK_INITIALIZER' 33 | .raw_lock = __ARCH_SPIN_LOCK_UNLOCKED, \ | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/asm-generic/qspinlock_types.h:49:37: note: expanded from macro '__ARCH_SPIN_LOCK_UNLOCKED' 49 | #define __ARCH_SPIN_LOCK_UNLOCKED { { .val = ATOMIC_INIT(0) } } | ^~~~~~~~~~~~~~~~~~~~~~~~~ 8 warnings and 1 error generated. .. vim +/arch_spin_is_locked +144 include/asm-generic/qspinlock.h 2aa79af6426319 Peter Zijlstra (Intel 2015-04-24 138) ab83647fadae2f Alexandre Ghiti 2024-11-03 139 #ifndef __no_arch_spinlock_redefine a33fda35e3a765 Waiman Long 2015-04-24 140 /* a33fda35e3a765 Waiman Long 2015-04-24 141 * Remapping spinlock architecture specific functions to the corresponding a33fda35e3a765 Waiman Long 2015-04-24 142 * queued spinlock functions. a33fda35e3a765 Waiman Long 2015-04-24 143 */ a33fda35e3a765 Waiman Long 2015-04-24 @144 #define arch_spin_is_locked(l) queued_spin_is_locked(l) a33fda35e3a765 Waiman Long 2015-04-24 @145 #define arch_spin_is_contended(l) queued_spin_is_contended(l) a33fda35e3a765 Waiman Long 2015-04-24 146 #define arch_spin_value_unlocked(l) queued_spin_value_unlocked(l) a33fda35e3a765 Waiman Long 2015-04-24 @147 #define arch_spin_lock(l) queued_spin_lock(l) a33fda35e3a765 Waiman Long 2015-04-24 @148 #define arch_spin_trylock(l) queued_spin_trylock(l) a33fda35e3a765 Waiman Long 2015-04-24 @149 #define arch_spin_unlock(l) queued_spin_unlock(l) ab83647fadae2f Alexandre Ghiti 2024-11-03 150 #endif a33fda35e3a765 Waiman Long 2015-04-24 151 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki