Hans as correctly pointed out that if the macro
callout_reset() is used, then c->c_cpu will get passed in. If the
user has previously mixed an call in before to callout_reset_on(.. , newcpu) then
if the process switch is occurring at the callout_reset we could end up with a
cpu set to CPUBLOCK i.e. MAXCPU which is an invalid index to cc_cpu.
Now we also have holes in the cc_cpu array as well for NUMA, so lets also
validate that the cpu was initd