On Wed, Aug 02, Andrew Morton wrote: > > +#define per_cpu(var, cpu) (*({ \ > > + int user_error_##var __attribute__ ((unused)); \ > > + RELOC_HIDE(&per_cpu__##var, __per_cpu_offset[cpu]); })) > > What's it do? Forces a syntax error if `var' isn't a simple identifier? > > Seems sane, although I'd check that the compiler doesn't accidentally > waste a stack slot for that local. Perhaps it's be safer to make > it a non-existing function: > > extern int user_error#var(void); > Yes, that is even better. See attached patch with the modifications for my major archs (s390, x86-64, generic). I did a run of 'make allmodconfig' with the attached patch and it produced some errors. I'll send the patches in a seperate mail.