Hi Peter, [auto build test WARNING on v4.3-rc4 -- if it's inappropriate base, please ignore] config: x86_64-randconfig-x010-201540 (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): In file included from include/linux/kernel.h:12:0, from kernel/rcu/tree.c:31: kernel/rcu/tree.c: In function '_raw_spin_lock_irqsave_rcu_node': include/linux/typecheck.h:11:18: warning: comparison of distinct pointer types lacks a cast (void)(&__dummy == &__dummy2); \ ^ >> include/linux/irqflags.h:63:3: note: in expansion of macro 'typecheck' typecheck(unsigned long, flags); \ ^ >> include/linux/irqflags.h:95:3: note: in expansion of macro 'raw_local_irq_save' raw_local_irq_save(flags); \ ^ >> include/linux/spinlock_api_up.h:40:8: note: in expansion of macro 'local_irq_save' do { local_irq_save(flags); __LOCK(lock); } while (0) ^ >> include/linux/spinlock_api_up.h:69:45: note: in expansion of macro '__LOCK_IRQSAVE' #define _raw_spin_lock_irqsave(lock, flags) __LOCK_IRQSAVE(lock, flags) ^ >> kernel/rcu/tree.c:1488:2: note: in expansion of macro '_raw_spin_lock_irqsave' _raw_spin_lock_irqsave(&rnp->lock, flags); ^ In file included from arch/x86/include/asm/processor.h:32:0, from arch/x86/include/asm/thread_info.h:52, from include/linux/thread_info.h:54, from arch/x86/include/asm/preempt.h:6, from include/linux/preempt.h:64, from include/linux/spinlock.h:50, from kernel/rcu/tree.c:33: >> include/linux/irqflags.h:64:9: warning: assignment makes pointer from integer without a cast [-Wint-conversion] flags = arch_local_irq_save(); \ ^ >> include/linux/irqflags.h:95:3: note: in expansion of macro 'raw_local_irq_save' raw_local_irq_save(flags); \ ^ >> include/linux/spinlock_api_up.h:40:8: note: in expansion of macro 'local_irq_save' do { local_irq_save(flags); __LOCK(lock); } while (0) ^ >> include/linux/spinlock_api_up.h:69:45: note: in expansion of macro '__LOCK_IRQSAVE' #define _raw_spin_lock_irqsave(lock, flags) __LOCK_IRQSAVE(lock, flags) ^ >> kernel/rcu/tree.c:1488:2: note: in expansion of macro '_raw_spin_lock_irqsave' _raw_spin_lock_irqsave(&rnp->lock, flags); ^ kernel/rcu/tree.c: At top level: kernel/rcu/tree.c:1493:34: error: expected declaration specifiers or '...' before '(' token _raw_spin_lock_irqsave_rcu_node((rnp), &(flags)) ^ kernel/rcu/tree.c:1493:41: error: expected declaration specifiers or '...' before '&' token _raw_spin_lock_irqsave_rcu_node((rnp), &(flags)) ^ kernel/rcu/tree.c: In function 'note_gp_changes': kernel/rcu/tree.c:1807:7: error: implicit declaration of function 'raw_spin_trylock_rcu_node' [-Werror=implicit-function-declaration] !raw_spin_trylock_rcu_node(rnp)) { /* irqs already off, so later. */ ^ cc1: some warnings being treated as errors vim +/_raw_spin_lock_irqsave +1488 kernel/rcu/tree.c 1472 */ 1473 static inline void raw_spin_lock_rcu_node(struct rcu_node *rnp) 1474 { 1475 raw_spin_lock(&rnp->lock); 1476 smp_mb__after_unlock_lock(); 1477 } 1478 1479 static inline void raw_spin_lock_irq_rcu_node(struct rcu_node *rnp) 1480 { 1481 raw_spin_lock_irq(&rnp->lock); 1482 smp_mb__after_unlock_lock(); 1483 } 1484 1485 static inline void 1486 _raw_spin_lock_irqsave_rcu_node(struct rcu_node *rnp, unsigned long *flags) 1487 { > 1488 _raw_spin_lock_irqsave(&rnp->lock, flags); 1489 smp_mb__after_unlock_lock(); 1490 } 1491 1492 #define raw_spin_lock_irqsave_rcu_node(rnp, flags) 1493 _raw_spin_lock_irqsave_rcu_node((rnp), &(flags)) 1494 1495 static inline bool raw_spin_trylock_rcu_node(struct rcu_node *rnp) 1496 { --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation