On Mon, Jul 08, 2019 at 01:03:51PM +1000, Stephen Rothwell wrote: > Hi all, > > After merging the rdma tree, today's linux-next build (x86_64 > allmodconfig) failed like this: > > In file included from include/asm-generic/percpu.h:7, > from arch/x86/include/asm/percpu.h:544, > from arch/x86/include/asm/preempt.h:6, > from include/linux/preempt.h:78, > from include/linux/spinlock.h:51, > from include/linux/seqlock.h:36, > from include/linux/time.h:6, > from include/linux/ktime.h:24, > from include/linux/timer.h:6, > from include/linux/netdevice.h:24, > from drivers/infiniband/sw/siw/siw_main.c:8: > include/linux/percpu-defs.h:92:33: warning: '__pcpu_unique_use_cnt' initialized and declared 'extern' > extern __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \ > ^~~~~~~~~~~~~~ > include/linux/percpu-defs.h:115:2: note: in expansion of macro 'DEFINE_PER_CPU_SECTION' > DEFINE_PER_CPU_SECTION(type, name, "") > ^~~~~~~~~~~~~~~~~~~~~~ > drivers/infiniband/sw/siw/siw_main.c:129:8: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(atomic_t, use_cnt = ATOMIC_INIT(0)); > ^~~~~~~~~~~~~~ > include/linux/percpu-defs.h:93:26: error: redefinition of '__pcpu_unique_use_cnt' > __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \ > ^~~~~~~~~~~~~~ > include/linux/percpu-defs.h:115:2: note: in expansion of macro 'DEFINE_PER_CPU_SECTION' > DEFINE_PER_CPU_SECTION(type, name, "") > ^~~~~~~~~~~~~~~~~~~~~~ > drivers/infiniband/sw/siw/siw_main.c:129:8: note: in expansion of macro 'DEFINE_PER_CPU' > static DEFINE_PER_CPU(atomic_t, use_cnt = ATOMIC_INIT(0)); Bernard, This looks like the wrong way to use DEFINE_PER_CPU these days. I'm not sure why my compiles don't hit it, or why 0-day didn't say something Looking at the other atomic_t PER_CPU users they just rely on automatic zero initialization, so this should just be: static DEFINE_PER_CPU(atomic_t, use_cnt); ? Please confirm ASAP. Jason