Messages in this thread | | | Date | Tue, 24 Oct 2017 04:26:19 +0800 | From | kbuild test robot <> | Subject | Re: [PATCH] locking/spinlock/debug: snapshot lock fields |
| |
Hi Mark,
[auto build test WARNING on tip/locking/core] [also build test WARNING on v4.14-rc6 next-20171018] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Mark-Rutland/locking-spinlock-debug-snapshot-lock-fields/20171024-035933 config: i386-randconfig-x003-201743 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386
All warnings (new ones prefixed by >>):
In file included from include/linux/linkage.h:4:0, from include/linux/preempt.h:9, from include/linux/spinlock.h:50, from kernel/locking/spinlock_debug.c:9: kernel/locking/spinlock_debug.c: In function 'debug_spin_unlock': kernel/locking/spinlock_debug.c:124:14: error: implicit declaration of function 'arch_spin_value_unlocked' [-Werror=implicit-function-declaration] SPIN_BUG_ON(arch_spin_value_unlocked(lock.raw_lock), lockp, lock, ^ include/linux/compiler.h:131:34: note: in definition of macro '__branch_check__' ______r = __builtin_expect(!!(x), expect); \ ^ >> kernel/locking/spinlock_debug.c:81:6: note: in expansion of macro 'unlikely' if (unlikely(cond)) spin_bug(lockp, lock, msg) ^~~~~~~~ kernel/locking/spinlock_debug.c:124:2: note: in expansion of macro 'SPIN_BUG_ON' SPIN_BUG_ON(arch_spin_value_unlocked(lock.raw_lock), lockp, lock, ^~~~~~~~~~~ kernel/locking/spinlock_debug.c: In function 'do_raw_spin_trylock': kernel/locking/spinlock_debug.c:154:49: error: macro "SPIN_BUG_ON" requires 4 arguments, but only 3 given SPIN_BUG_ON(!ret, lock, "trylock failure on UP"); ^ kernel/locking/spinlock_debug.c:154:2: error: 'SPIN_BUG_ON' undeclared (first use in this function) SPIN_BUG_ON(!ret, lock, "trylock failure on UP"); ^~~~~~~~~~~ kernel/locking/spinlock_debug.c:154:2: note: each undeclared identifier is reported only once for each function it appears in cc1: some warnings being treated as errors
vim +/unlikely +81 kernel/locking/spinlock_debug.c
> 9 #include <linux/spinlock.h> 10 #include <linux/nmi.h> 11 #include <linux/interrupt.h> 12 #include <linux/debug_locks.h> 13 #include <linux/delay.h> 14 #include <linux/export.h> 15 16 void __raw_spin_lock_init(raw_spinlock_t *lock, const char *name, 17 struct lock_class_key *key) 18 { 19 #ifdef CONFIG_DEBUG_LOCK_ALLOC 20 /* 21 * Make sure we are not reinitializing a held lock: 22 */ 23 debug_check_no_locks_freed((void *)lock, sizeof(*lock)); 24 lockdep_init_map(&lock->dep_map, name, key, 0); 25 #endif 26 lock->raw_lock = (arch_spinlock_t)__ARCH_SPIN_LOCK_UNLOCKED; 27 lock->magic = SPINLOCK_MAGIC; 28 lock->owner = SPINLOCK_OWNER_INIT; 29 lock->owner_cpu = -1; 30 } 31 32 EXPORT_SYMBOL(__raw_spin_lock_init); 33 34 void __rwlock_init(rwlock_t *lock, const char *name, 35 struct lock_class_key *key) 36 { 37 #ifdef CONFIG_DEBUG_LOCK_ALLOC 38 /* 39 * Make sure we are not reinitializing a held lock: 40 */ 41 debug_check_no_locks_freed((void *)lock, sizeof(*lock)); 42 lockdep_init_map(&lock->dep_map, name, key, 0); 43 #endif 44 lock->raw_lock = (arch_rwlock_t) __ARCH_RW_LOCK_UNLOCKED; 45 lock->magic = RWLOCK_MAGIC; 46 lock->owner = SPINLOCK_OWNER_INIT; 47 lock->owner_cpu = -1; 48 } 49 50 EXPORT_SYMBOL(__rwlock_init); 51 52 static void spin_dump(raw_spinlock_t *lockp, raw_spinlock_t lock, 53 const char *msg) 54 { 55 struct task_struct *owner = NULL; 56 57 if (lock.owner && lock.owner != SPINLOCK_OWNER_INIT) 58 owner = lock.owner; 59 printk(KERN_EMERG "BUG: spinlock %s on CPU#%d, %s/%d\n", 60 msg, raw_smp_processor_id(), 61 current->comm, task_pid_nr(current)); 62 printk(KERN_EMERG " lock: %pS, .magic: %08x, .owner: %s/%d, " 63 ".owner_cpu: %d\n", 64 lockp, lock.magic, 65 owner ? owner->comm : "<none>", 66 owner ? task_pid_nr(owner) : -1, 67 lock.owner_cpu); 68 dump_stack(); 69 } 70 71 static void spin_bug(raw_spinlock_t *lockp, raw_spinlock_t lock, 72 const char *msg) 73 { 74 if (!debug_locks_off()) 75 return; 76 77 spin_dump(lockp, lock, msg); 78 } 79 80 #define SPIN_BUG_ON(cond, lockp, lock, msg) \ > 81 if (unlikely(cond)) spin_bug(lockp, lock, msg) 82
--- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [unhandled content-type:application/gzip] | |