Using a typedef came from Linus, and the idea is basically if NR_CPUS fits
into a long, then it's carried as an array of one (ie., local variable).
If it's bigger, then it's a pointer to a remote array. The references can
all be pointers (*cpumask), though most of the references use the cpu_XXX
operators which already treat the references correctly (in my proposal,
that is). That way, small systems can optimize out the indirect reference
and the overhead becomes zero.
Also, cpumask_alloc/free() becomes nop's for small systems.
But I like the idea of dumping some of the initializers. I should have
made CPU0 "cpumask_of_cpu(0)". I'll have to look at where they are used to
see if this is feasible.
Thanks!
Mike
--